Recordsets et datatables

Un jeu d’enregistrements est un objet Automation qui est une table à taille fixe, délimitée ou non, qui contient des lignes de déclarations de types de données hôtes simples. Une datatable est un objet .NET identique à un jeu d’enregistrements à chaque égard, sauf que vous ne pouvez pas utiliser la fonction NewRecordset avec des datatables. Une fois que vous avez un jeu d’enregistrements ou un objet datatable, vous pouvez appeler des méthodes sur cet objet pour accéder à ses lignes.

Un jeu d’enregistrements ou une table de données est implémenté sur les ensembles de lignes par le service de données à distance (RDS), qui fait partie de Microsoft Data Access Components (MDAC) version 2.5. Vous pouvez utiliser l’objet RDSServer.DataFactory pour créer un recordset ou une table de données et utiliser ActiveX® Data Objects (ADO) pour mettre à jour ou lire le jeu d’enregistrements.

Un jeu d’enregistrements ou une datatable fournit un moyen de présenter et de manipuler des données tabulaires. Actuellement, les recordsets ne peuvent pas être imbriqués, ne peuvent pas contenir de tableaux et ne peuvent pas contenir de types définis par l’utilisateur (UUDT).

La prise en charge des jeux d’enregistrements et des tableaux de données permet à TI de gérer ce qui constitue effectivement un tableau de structure (ou un enregistrement, en terminologie COBOL) ainsi qu’une structure. Une structure est représentée sous la forme d’un jeu d’enregistrements de taille fixe ou d’une table de données où chaque colonne de la ligne contient un seul élément de données. Pour résoudre les problèmes de programmation mainframe, TI classifie les jeux d’enregistrements et les datatables comme des jeux d’enregistrements de taille fixe, limitées ou illimitées, en référence au nombre de lignes contenues dans le jeu d’enregistrements ou la table de données.

Important

Le modèle de programmation IBM i distributed program calls (DPC) prend uniquement en charge les jeux d’enregistrements de taille fixe et les datatables. Le modèle de programmation ne prend pas en charge les jeux d’enregistrements et les datatables sans limite, ni ne prend en charge l’utilisation de la clause OCCURS DEPENDING ON, ni les jeux d’enregistrements et les datatables de taille variable.

Pour les jeux d’enregistrements TI de taille fixe, limitées et non liées et les tables de données, la disposition de toutes les lignes d’un jeu d’enregistrements particulier est identique et est définie au moment du design à l’aide de TI Project. Si un recordset ou une datatable est une valeur de sortie ou de retour à partir du mainframe, l’environnement d’exécution TI utilise l’objet RDSServer.DataFactory pour créer un recordset ou un datatable et ADO pour remplir le jeu d’enregistrements ou la table de données avec les lignes de données retournées par le programme mainframe.

Ce jeu d'enregistrements est déconnecté et utilise un type de curseur adOpenForwardOnly. Pour analyser le jeu d’enregistrements, vous devez appeler MoveFirst et MoveNext pour parcourir les lignes. Le jeu d’enregistrements peut être mis à jour sur place, mais parce qu’il est déconnecté de la source de données « true » (la source de données manipulée par le programme mainframe qui a retourné les données), les mises à jour ne sont pas propagées à la source de données d’origine.

NewRecordset est une fonction fournie automatiquement pour tous les composants TI. Cette fonction est appelée pour créer un objet recordset déconnecté qui peut être passé dans un appel de méthode TI. NewRecordset est fourni comme commodité pour les applications clientes TI ; il n’est pas nécessaire de passer un jeu d’enregistrements aux méthodes d’un composant TI. La fonction peut être appelée uniquement pour les objets d’entrée ou d’entrée/sortie recordset. L’environnement d’exécution TI crée un objet recordset lorsque le paramètre est un objet recordset de sortie.

Dans cette section