Types d'ensembles de données

De RAD Studio
Aller à : navigation, rechercher

Remonter à Compréhension des ensembles de données - Index


Utilisation des descendants de TDataSet classe les descendants de TDataSet selon la méthode qu'ils utilisent pour accéder à leurs données. Un autre moyen pratique de classer les descendants de TDataSet est de considérer le type de données du serveur qu'ils représentent. Selon ce moyen, il y a trois classes d'ensembles de données de base :

Ensembles de données de type table : Les ensembles de données de type table représentent une seule table du serveur de base de données, avec toutes ses lignes et toutes ses colonnes. Les ensembles de données de type table incluent Bde.DBTables.TTable, ADOdb.TADOTable, SQLExpr.TSQLTable et IBX.IBTable.TIBTable.

Les ensembles de données de type table vous permettent de bénéficier des index définis sur le serveur. Comme il y a une correspondance un-à-un entre la table de la base de données et l'ensemble de données, vous pouvez utiliser les index du serveur qui ont été définis pour cette table. Les index permettent à votre application de trier les enregistrement de la table, accélèrent les recherches et les références, et peuvent servir de base à une relation maître/détail. Certains ensembles de données de type table tirent également avantage de la relation un-à-un l'entre ensemble de données et la table de la base de données pour vous permettre d'effectuer des opérations comme la création et la suppression de tables.

Ensembles de données de type requête : Les ensembles de données de type requête représentent une seule commande, ou requête, SQL. Les requêtes peuvent représenter l'ensemble de résultats d'une commande d'exécution (généralement une instruction SELECT) ou peuvent exécuter une commande qui ne renvoie aucun enregistrement (par exemple une instruction UPDATE). Les ensembles de données de type requête incluent Bde.DBTables.TQuery, ADOdb.TADOQuery, SQLExpr.TSQLQuery et IBX.IBQuery.TIBQuery.

Pour utiliser efficacement un ensemble de données de type requête, vous devez être familier de SQL et de l'implémentation SQL de votre serveur, y compris des limitations et des extensions du standard SQL-92. Si vous débutez dans SQL, vous pouvez vous procurer un manuel externe qui traite de SQL en détail. Un des meilleurs est Understanding the New SQL : A Complete Guide, de Jim Melton et Alan R. Simpson, Morgan Kaufmann Publishers.

Ensembles de données de type procédure stockée : Les ensembles de données de type procédure stockée représentent une procédure stockée sur le serveur de base de données. Les ensembles de données de type procédure stockée incluent Bde.DBTables.TStoredProc, ADOdb.TADOStoredProc, SQLExpr.TSQLStoredProc et IBX.IBStoredProc.TIBStoredProc.

Une procédure stockée est un programme autonome écrit dans le langage de procédure et de déclenchement propre au système de base de données utilisé. Elles gèrent, en général, les tâches très répétitives sur les bases de données et sont particulièrement utiles pour les opérations qui s'appliquent à un grand nombre d'enregistrements ou qui utilisent des fonctions statistiques et mathématiques. Les procédures stockées améliorent généralement les performances des applications de bases de données, car :

  • Elles tirent parti de la plus grande puissance et de la plus grande rapidité fournies par le serveur.
  • Elles réduisent le trafic sur le réseau en déplaçant le traitement sur le serveur.

Les procédures stockées peuvent renvoyer des données ou non. Celles qui le font doivent renvoyer les données sous forme d'un curseur (comme le résultat d'une requête SELECT), sous forme de plusieurs curseurs (en renvoyant réellement plusieurs ensembles de données), ou dans des paramètres de sortie. Ces différences proviennent en partie du serveur : certains d'entre eux n'autorisent pas les procédures stockées à renvoyer des données ou n'autorisent que les paramètres de sortie. Certains autres ne prennent pas en charge les procédures stockées. Reportez-vous à la documentation de votre serveur pour savoir ce qu'il propose.

Remarque :  Vous pouvez, en général, utiliser un ensemble de données de type requête pour exécuter des procédures stockées car la plupart des serveurs fournissent des extensions SQL permettant de travailler avec les procédures stockées. Mais, chaque serveur utilise pour cela sa propre syntaxe. Si vous choisissez d'utiliser un ensemble de données de type requête à la place d'un ensemble de données de type procédure stockée, cherchez la syntaxe nécessaire dans la documentation de votre serveur.

Outre les ensembles de données faisant clairement partie d'une de ces trois catégories, quelques descendants de TDataSet appartiennent à plusieurs catégories :

  • ADOdb.TADODataSet et SQLExpr.TSQLDataSet possèdent une propriété CommandType qui vous permet de spécifier s'ils représentent une table, une requête ou une procédure stockée. Les propriétés et les méthodes sont presque les mêmes que celles des ensembles de données de type requête, bien que TADODataSet vous permette de spécifier un index comme dans les ensembles de données de type table.
  • Datasnap.DBClient.TClientDataSet représente les données d'un autre ensemble de données. De ce fait, il peut représenter une table, une requête et une procédure stockée. TClientDataSet se comporte pratiquement comme un ensemble de données de type table puisqu'il prenne en charge les index. Mais, il possède aussi quelques fonctionnalités des requêtes et des procédures stockées : la gestion des paramètres et la possibilité de s'exécuter sans renvoyer d'ensemble de résultats.
  • D'autres ensembles de données client possèdent une propriété CommandType qui vous permet de spécifier s'ils représentent une table, une requête ou une procédure stockée. Les propriétés et méthodes sont comme TClientDataSet, y compris la prise en charge des paramètres, des index, et la possibilité de s'exécuter sans renvoyer d'ensemble de résultats.
  • IBX.IBCustomDataSet.TIBDataSet peut représenter à la fois des requêtes et des procédures stockées. En fait, il peut représenter plusieurs requêtes et procédures stockées simultanément, sans qu'il y ait des propriétés différentes pour chacune.

Voir aussi