Introduction à InterBase Express

De RAD Studio
Aller à : navigation, rechercher

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

InterBase Express (IBX) est un ensemble de composants d'accès aux données qui permet d'accéder à des données de bases de données InterBase. Les composants Administration InterBase, qui requièrent InterBase, sont décrits après les composants d'accès aux données InterBase.

Composants IBX

Les composants suivants sont situés sur l'onglet InterBase de la palette des composants.



IBX

IBX.IBTable.TIBTable

IBX

IBX.IBQuery.TIBQuery

IBX

IBX.IBStoredProc.TIBStoredProc

IBX

IBX.IBDatabase.TIBDatabase

IBX

IBX.IBDatabase.TIBTransaction

IBX

IBX.IBUpdateSQL.TIBUpdateSQL

IBX

IBX.IBCustomDataSet.TIBDataSet

IBX

IBX.IBSQL.TIBSQL

IBX

IBX.IBDatabaseInfo.TIBDatabaseInfo

IBX

IBX.IBSQLMonitor.TIBSQLMonitor

IBX

IBX.IBEvents.TIBEvents

IBX

IBX.IBExtract.TIBExtract

IBX

IBX.IBConnectionBroker.TIBConnectionBroker

IBX

Script InterBase

IBX

Analyseur SQL InterBase

IBX

IBX.IBDatabaseINI.TIBDatabaseINI

IBX

IBX.IBFilterDialog.TIBFilterDialog



Bien que leurs noms soient similaires à ceux des composants BDE, les composants IBX sont quelque peu différents. Les sections ci-dessous présentent ces différences pour les composants ayant un équivalent BDE.

Remarque : Il n'existe pas de migration simple d'applications BDE vers des applications IBX. Vous devrez généralement remplacer les composants BDE par les composants IBX comparables, puis recompiler vos applications. Toutefois, la vitesse gagnée et les puissantes fonctionnalités InterBase auxquelles vous pouvez alors accéder justifient pleinement la migration.

IBDatabase

Utilisez un composant IBX.IBDatabase.TIBDatabase pour établir des connexions à des bases de données susceptibles d'impliquer une ou plusieurs transactions simultanées. A la différence de BDE, IBX possède un composant transaction distinct qui permet de séparer les transactions des connexions de base de données.

Pour définir une connexion de base de données

  1. Déposez un composant IBDatabase sur une fiche ou un module de données.
  2. Initialisez la propriété DatabaseName. Pour une connexion locale, il s'agit du lecteur, du chemin et du nom du fichier de la base de données. Initialisez la propriété Connected à True.
  3. Entrez un nom d'utilisateur et un mot de passe corrects puis cliquez sur OK pour établir la connexion à la base de données.

Astuce :  Vous pouvez stocker le nom de l'utilisateur et son mot de passe dans la propriété Params du composant IBDatabase en initialisant la propriété LoginPrompt à False après l'ouverture de la session. Par exemple, après avoir ouvert une session en tant qu'administrateur système et avoir initialisé la propriété LoginPrompt à False, vous pourrez voir les informations suivantes en éditant la propriété Params :


      user_name=sysdba
      password=masterkey

IBTransaction

A la différence de Borland Database Engine, IBX contrôle les transactions avec un composant séparé, IBX.IBDatabase.TIBTransaction. Cette fonctionnalité puissante vous permet de séparer les transactions des connexions de base de données pour pouvoir bénéficier du mécanisme de validation à deux phases d'InterBase (les transactions s'étendant sur plusieurs connexions) et de plusieurs transactions simultanées utilisant la même connexion.

Utilisez un composant IBTransaction pour gérer les contextes de transactions, qui peuvent mettre en jeu une ou plusieurs connexions de base de données. Dans la plupart des cas, un modèle simple avec une base de données et une transaction fera l'affaire.

Pour définir une transaction

  1. Définissez une connexion IBDatabase comme décrit ci-dessus.
  2. Déposez un composant IBTransaction sur la fiche ou le module de données.
  3. Affectez à la propriété DefaultDatabase le nom de votre composant IBDatabase.
  4. Initialisez la propriété Active à True pour démarrer la transaction.

Composants ensemble de données IBX

Il existe plusieurs composants ensembles de données parmi lesquels vous pouvez faire votre choix avec IBX ; chacun possède ses caractéristiques propres et est adapté à des tâches particulières :

IBTable

Utilisez un composant IBX.IBTable.TIBTable pour définir un ensemble de données dynamique sur une table ou une vue sans avoir à entrer d'instructions SQL.

Pour configurer les composants IBTabl

  1. Ajoutez un composant IBTable à votre fiche ou votre module de données.
  2. Spécifiez les composants base de données et transaction associés.
  3. Spécifiez le nom de la relation à partir de la liste déroulante TableName.
  4. Initialisez la propriété Active à True.

IBQuery

Utilisez un composant IBX.IBQuery.TIBQuery pour exécuter n'importe quelle instruction DSQL InterBase, restreindre votre ensemble de résultats à certaines colonnes et certaines lignes, utiliser des fonctions d'agrégation et effectuer des jointures entre plusieurs tables.

Les composants IBQuery fournissent un ensemble de données en lecture seule et s'adaptent bien à l'environnement client-serveur d'InterBase. Pour définir un composant IBQuery :

Pour définir un composant IBQuery

  1. Définissez une connexion IBDatabase comme décrit ci-dessus.
  2. Définissez une connexion IBTransaction comme décrit ci-dessus.
  3. Ajoutez un composant IBQuery à votre fiche ou votre module de données.
  4. Spécifiez les composants base de données et transaction associés.
  5. Entrez dans l'éditeur de listes de chaînes une instruction SQL valide pour la propriété SQL du composant IBQuery.
  6. Initialisez la propriété Active à True.

IBDataSet

Utilisez un composant IBX.IBCustomDataSet.TIBDataSet pour exécuter n'importe quelle instruction DSQL InterBase, restreindre votre ensemble de résultats à certaines colonnes et certaines lignes, utiliser des fonctions d'agrégation et effectuer des jointures entre plusieurs tables. Les composants IBDataSet sont similaires aux composants IBQuery, mis à part qu'ils prennent en charge les ensembles de données dynamiques sans nécessiter un composant IBUpdateSQL.

L'exemple suivant fournit un ensemble de données dynamique pour la table COUNTRY dans employee.gdb :

  1. Définissez une connexion IBDatabase comme décrit ci-dessus.
  2. Spécifiez les composants base de données et transaction associés.
  3. Ajoutez un composant IBDataset à votre fiche ou votre module de données.
  4. Entrez des instructions SQL pour les propriétés suivantes :



SelectSQL

SELECT Country, Currency FROM Country

RefreshSQL

SELECT Country, Currency FROM Country WHERE Country = :Country

ModifySQL

UPDATE Country SET Country = :Country, Currency = :Currency WHERE Country = :Old_Country

DeleteSQL

DELETE FROM Country WHERE Country = :Old_Country

InsertSQL

INSERT INTO Country (Country, Currency) VALUES (:Country, :Currency)


5. Initialisez la propriété Active à True.

Remarque : Les paramètres et les champs transmis aux fonctions sont sensibles à la casse dans le dialecte 3. Par exemple,


FieldByName(EmpNo)

ne renvoie rien dans le dialecte 3 si le champ est spécifié sous la forme 'EMPNO'.

IBStoredProc

Utilisez IBX.IBStoredProc.TIBStoredProc pour les procédures exécutables InterBase : les procédures qui renvoient au plus une ligne d'informations. Pour les procédures stockées renvoyant plus d'une ligne de données ou les procédures "Select", utilisez des composants IBQuery ou IBDataSet.

IBSQL

Utilisez un composant IBX.IBSQL.TIBSQL pour les opérations qui doivent être rapides et légères. Des opérations telles que la définition de données et la copie de données d'une base de données vers une autre sont bien adaptées aux composants IBSQL.

Dans l'exemple suivant, un composant IBSQL est utilisé pour renvoyer la valeur suivante à partir d'un générateur :

  1. Définissez une connexion IBDatabase comme décrit ci-dessus.
  2. Positionnez un composant IBSQL sur la fiche ou le module de données et affectez le nom de la base de données à sa propriété Database.
  3. Ajoutez une instruction SQL dans l'éditeur de listes de chaînes pour la propriété SQL, par exemple :


      SELECT GEN_ID(MyGenerator, 1) FROM RDB$DATABASE

IBUpdateSQL

Utilisez un composant IBX.IBUpdateSQL.TIBUpdateSQL pour mettre à jour des ensembles de données en lecture seule. Vous pouvez mettre à jour une sortie IBQuery avec un composant IBUpdateSQL :

  1. Définissez un composant IBQuery comme décrit ci-dessus.
  2. Ajoutez un composant IBUpdateSQL à votre fiche ou votre module de données.
  3. Entrez des instructions SQL pour les propriétés suivantes : DeleteSQL, InsertSQL, ModifySQL et RefreshSQL.
  4. Affectez le nom du composant IBUpdateSQLà la propriété UpdateObject du composant IBQuery.
  5. Initialisez la propriété Active du composant IBQuery à True.

IBSQLMonitor

Utilisez un composant IBX.IBSQLMonitor.TIBSQLMonitor pour développer des outils de diagnostic permettant de surveiller les communications entre votre application et le serveur InterBase. Quand les propriétés TraceFlags d'un composant IBDatabase sont activées, les composants TIBSQLMonitor actifs peuvent surveiller l'activité de la connexion et envoyer le résultat vers un fichier ou un contrôle.

Un bon exemple consisterait à créer une application séparée avec un composant TIBSQLMonitor et un contrôle Memo. Lancez cette deuxième application, puis dans l'application principale, activez les propriétés TraceFlags du composant IBDatabase. Travaillez avec l'application principale et observez le contrôle Memo de la deuxième application se remplir de données.

IBDatabaseInfo

Utilisez un composant IBX.IBDatabaseInfo.TIBDatabaseInfo pour lire des informations sur une base de données particulière, comme son intervalle de nettoyage, sa version ODS et les noms des utilisateurs actuellement connectés à cette base de données.

La procédure suivante est un exemple de façon de définition d'un composant IBDatabaseInfo affichant les utilisateurs actuellement connectés à la base de données, procédez comme suit :

Pour définir un composant IBDatabaseInfo

  1. Définissez une connexion IBDatabase comme décrit ci-dessus.
  2. Placez un composant IBDatabaseInfo sur la fiche ou le module de données et affectez à sa propriété Database le nom de la base de données.
  3. Placez un composant Memo sur la fiche.
  4. Placez un composant Timer sur la fiche et définissez son intervalle.
  5. Double-cliquez sur le champ de l'événement OnTimer du composant Timer et entrez un code de la forme :


   Memo1.Text := IBDatabaseInfo.UserNames.Text;   //  Exemple Delphi
       Memo1->Text = IBDatabaseInfo->UserNames->Text; //  Exemple C++

IBEvents

Utilisez un composant IBEvents pour demander la notification et traiter de manière asynchrone les événements transmis par un serveur InterBase.

Pour définir un composant IBEvents

  1. Définissez une connexion IBDatabase comme décrit ci-dessus.
  2. Positionnez un composant IBEvents sur la fiche ou le module de données et affectez le nom de la base de données à sa propriété Database.
  3. Entrez des événements dans l'éditeur de listes de chaînes de la propriété Events, par exemple :


      IBEvents.Events.Add('EVENT_NAME');   //  Exemple Delphi
          IBEvents->Events->Add("EVENT_NAME"); //  Exemple C++

4. Initialisez la propriété Registered à True.


Composants Administration InterBase

Si vous avez installé InterBase, vous pouvez utiliser les composants Administration InterBase, qui vous permettent d'accéder aux puissants appels à l'API des services InterBase.

Les composants suivants sont situés sur l'onglet d'administration d'InterBase de l'EDI :

IBX

IBX.IBServices.TIBConfigService

IBX

IBX.IBServices.TIBBackupService

IBX

IBX.IBServices.TIBRestoreService

IBX

IBX.IBServices.TIBValidationService

IBX

IBX.IBServices.TIBStatisticalService

IBX

IBX.IBServices.TIBLogService

IBX

IBX.IBServices.TIBSecurityService

IBX

IBX.IBServices.TIBServerProperties


Remarque : Pour utiliser ces fonctionnalités, vous devez installer InterBase.

IBConfigService

Utilisez un objet IBX.IBServices.TIBConfigService pour configurer les paramètres d'une base de données, y compris les tampons de pages, le mode asynchrone, l'espace de réserve et l'intervalle de balayage.

IBBackupService

Utilisez un objet IBX.IBServices.TIBBackupService pour effectuer une copie de sauvegarde de votre base de données. Cet objet vous permet de définir des paramètres tels que le facteur de blocage, le nom du fichier de sauvegarde et les options de sauvegarde de la base de données.

IBRestoreService

Utilisez un objet IBX.IBServices.TIBRestoreService pour restaurer votre base de données. Cet objet vous permet de définir des options telles que les tampons de pages, la taille des pages et les options de restauration de la base de données.

IBValidationService

Utilisez un objet IBX.IBServices.TIBValidationService pour valider votre base de données et réconcilier vos transactions de base de données. Cet objet vous permet de définir l'action de transaction par défaut, de renvoyer des informations sur les transactions limbo et de définir d'autres options de validation de la base de données.

IBStatisticalService

Utilisez un objet IBX.IBServices.TIBStatisticalService pour afficher les statistiques sur la base de données, par exemple les pages de données, le journal de la base de données, les pages d'en-tête, les pages d'index et les relations système.

IBLogService

Utilisez un objet IBX.IBServices.TIBLogService pour créer un fichier journal.

IBSecurityService

Utilisez un objet IBX.IBServices.TIBSecurityService pour gérer l'accès des utilisateurs au serveur InterBase. Cet objet vous permet de créer, de supprimer et de modifier des comptes utilisateur, d'afficher tous les utilisateurs et de définir des groupes de travail en utilisant des rôles SQL.

IBServerProperties

Utilisez un composant IBX.IBServices.TIBServerProperties pour renvoyer des informations sur le serveur, y compris les paramètres de configuration, les informations relatives à la version et à la licence.


Voir aussi