Présentation des fonctionnalités dbExpress

De RAD Studio
Aller à : navigation, rechercher

Remonter à Développement d'applications de bases de données

Le framework de niveau supérieur de dbExpress et le support des métadonnées a été réécrit dans Delphi pour RAD Studio 2007. Il comporte un nouveau support de métadonnées enrichi.

Ce document traite les fonctionnalités suivantes :

  • Framework dbExpress
  • Améliorations des métadonnées dbExpress
  • Pilote DBXClient
  • Pilote DBXDynalink
  • DBTest

Framework dbExpress

VCL

L'implémentation du composant VCL dbExpress a été modifiée avec des changements minimaux de l'API. La plupart des applications ne sont pas affectées par les modifications apportées à la bibliothèque VCL dbExpress. Toutefois, des méthodes, propriétés, événements, constantes et énumérations sont nouvelles.

Améliorations des métadonnées dbExpress

De nouveaux fournisseurs de métadonnées pour 9 dorsaux de base de données différents sont entièrement écrits dans Delphi. Le code source complet de tous les fournisseurs de métadonnées est inclus dans le produit..

Fonctionnalités de lecture et d'écriture de métadonnées

Chaque fournisseur est composé d'une implémentation de lecture et d'écriture des métadonnées contenue dans les packages des pilotes dbExpress. Les implémentations de lecture et d'écriture de métadonnées distinctes qui se trouvaient dans les packages DbxReadOnlyMetaData et DbxMetaData n'existent plus.

Approche basée sur les fournisseurs

Les fournisseurs de métadonnées sont détachés du pilote, de telle sorte qu'un fournisseur de métadonnée peut être utilisé pour plusieurs implémentations de pilote tant que le dorsal de base de données reste le même. L'explorateur de données profite également des fournisseurs de métadonnées pour fournir le support des métadonnées à d'autres pilotes de bases de données.

Le fournisseur n'est pas lié à un pilote, mais à un dorsal de base de données. La nouvelle propriété TDBXPropertyNames.MetaDataPackageLoader des fichiers dbxdrivers.ini peut être définie sur un objet TDBXCommandFactory. Cette implémentation de fabrique de commande crée un TDBXCommand pouvant exécuter des commandes de métadonnée. Cette approche permet à plusieurs implémentations de pilotes d'un dorsal de base de données spécifique d'utiliser le même fournisseur de métadonnées. L'explorateur de données profite également de cette architecture pour fournir des métadonnées structurées dbExpress 4 pour les pilotes des autres fournisseurs. Le découplage du pilote et du fournisseur de métadonnées permet des implémentations de pilotes "légères". Si les commandes des métadonnées peuvent être traitées sur un serveur, il n'est pas nécessaire d'avoir la logique de fournisseur de métadonnées sur le client.

Répertoire source du fournisseur

La source de la base de données est désormais contenue dans l'emplacement d'installation suivant :

C:\Program Files (x86)\Embarcadero\Studio\21.0\source\database

Lecture des métadonnées

L'unité DBXMetaDataNames a été fournie pour lire les métadonnées. La classe dbExpress TDBXMetaDataCommands fournit un ensemble de constantes pour lire divers types de métadonnées. Définissez la propriété Data.DBXCommon.TDBXCommand.CommandType sur Data.DBXCommon.TDBXCommandTypes.DBXMetadata et définissez Data.DBXCommon.TDBXCommand.Text sur l'une des constantes de TDBXMetaDataCommands pour acquérir la métadonnée désignée. Data.DBXCommon.TDBXCommand.ExecuteQuery renvoie un Data.DBXCommon.TDBXReader pour accéder à la métadonnée. Les nouvelles classes de DBXMetaDataNames décrivent et fournissent un accès aux colonnes de cette métadonnée.

Ecriture des métadonnées

Le support de la création des instructions CREATE, ALTER et DROP sensibles au dialecte SQL est fourni dans l'explorateur de données. dbExpress expose également une classe DbxMetaDataProvider qui couvre cette capacité pour les applications. Cela augmente légèrement la taille de l'application, puisque les écrivains de métadonnées doivent être inclus. La capacité de création générique des tables est utile pour de nombreuses applications. L'interface vous permet de décrire l'aspect d'une table et de ses colonnes et de passer cette description à la méthode TdbxMetaDataProvider.CreateTable. Voici un exemple simple qui montre comment créer une table avec une colonne int32 nommée "C1", un décimal avec une précision de 10 et une échelle de 2 nommé "C2", et une colonne basée sur les caractères avec une précision de 32 nommée "C3".

var MetaDataTable: TDBXMetaDataTable; DataGenerator: TDbxDataGenerator; Command:
    TDBXCommand; Row: Integer; begin MetaDataTable := TDBXMetaDataTable.Create;
    MetaDataTable.TableName := 'QCXXX_TABLE'; MetaDataTable.AddColumn(TDBXInt32Column.Create('C1'));
    MetaDataTable.AddColumn(TDBXDecimalColumn.Create('C2', 10, 2));
    MetaDataTable.AddColumn(TDBXUnicodeCharColumn.Create('C3', 32));
    MetaDataProvider.CreateTable(MetaDataTable); end

Déploiement

Pour de plus amples informations sur le déploiement d'applications de bases de données, voir Déploiement d'applications de bases de données.

Compatibilité

Les composants VCL de l'unité SqlExpr travaillent toujours avec des pilotes qui fournissent les métadonnées dbExpress 3 plus limitées. Toutefois, l'explorateur de données travaille seulement avec les métadonnées dbExpress 4.

Notez que Delphi inclut des métadonnées pour 9 dorsaux de base de données différents. Toute implémentation de pilote dbExpress pour les 9 dorsaux supportés peuvent ainsi réutiliser le fournisseur de métadonnées avec leur implémentation de pilote.

Pilote DBXClient

DBXClient est un pilote dbExpress 4 léger qui traite à distance l'interface de framework dbExpress 4 sur un transport réseau pluggable. Dans cette release, un protocole de transport TCP/IP est pris en charge. Le pilote utilise un protocole de flux JSON/RPC (Java Script Object Notation).

Le DBXClient est implémenté en 100% Pascal Objet. Son code source est inclus dans le produit.

Connectivité

DBXClient peut établir la connexion à DataSnap. DataSnap fournit un serveur d'application multiniveau qui contient et gère les modules de données distants. DataSnap a été amélioré pour fournir un mécanisme de connexion très général entre les composants de niveaux différents.

Pour utiliser le pilote DBXClient avec DataSnap, ajoutez l'unité DBXClient à la clause uses.

Déploiement

DBXClient ne nécessite pas l'installation d'une bibliothèque client de base de données lors du déploiement de votre application. DBXClient est 100% Delphi et peut être directement lié dans votre application sous forme d'un fichier .exe unique.

Pour de plus amples informations sur le déploiement d'applications de bases de données, voir Déploiement d'applications de bases de données.

DBTest

C'est une collection de classes qui étendent les capacités de Dunit afin de faciliter le test des bases de données. Les tests Dunit exemple qcreport et cts fournissent de bons exemples sur l'utilisation de DBTest. TestCaseExtension contient les extensions non-base de données à Dunit et l'unité DBXTest contient les extensions base de données.

Propriétés de ligne de commande

De nouvelles unités ont été ajoutées au package DbxDynalinkDriver pour les 8 pilotes Dynalink :

Sélection de test

La ligne de commande -s:<TestName> peut être utilisée pour exécuter une seule méthode dans un cas de test Dunit. Cela est utile pour déboguer un seul bogue. Voir l'unité TestCaseExtension.

Méthodes pratiques

Plusieurs méthodes permettent de créer une connexion par défaut et un fournisseur de métadonnées. Voir l'unité DBXTest.

Générateur de données

Il existe également un générateur de données simple et extensible. Voir l'unité DBXDataGenerator.

Voir aussi