Ma première base InterBase

Cette page a été écrite pour Delphi 5 en utilisant beaucoup de SQL. Pour développer avec Delphi 6 en utilisant uniquement l'IDE (Environnement de développement intégré) lisez l'article Delphi 6 et InterBase 6

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Cet article est né de la constatation suivante : l'information pour la prise en main d'InterBase est dispersée, et la plupart du temps en anglais. J'ai essayé d'écrire l'article que j'aurais voulu lire. J'espère qu'il vous permettra de démarrer rapidement avec InterBase, et je reste ouvert à toute suggestion.

InterBase

II. Vous abordez InterBase parce que

  1. vous souhaitez sortir du BDE et passer au client/serveur,
  2. vous vous préparez à la prochaine version de Delphi (l'arrivée de dbExpress qui supportera InterBase),
  3. InterBase est passé en Open Source,
  4. vous voulez une base de données puissante, fiable et facile à installer et à déployer.

III. Historique

Que ce soit pour l'une ou l'autre de ces raisons, vous serez intéressé d'apprendre qu'InterBase est né des travaux d'un développeur de Rdb de DEC, Jim Starkey. Souhaitant plus de liberté dans l'évolution de son produit, il créa et dirigea InterBase Inc. Ashton-Tate acheta la société. Et quand Borland racheta cette dernière, elle devint propriétaire d'InterBase. Plus récemment Borland/Inprise fit d'InterBase une entité autonome et décide l'été 2000 de mettre InterBase en Open Source.

Aujourd'hui, InterBase est donc soutenue d'une part au sein de Source Forge® ou d'IBPoenix, d'autre part par Borland. Bien que le produit soit devenu libre de droit d'usage et de diffusion, Borland/Inprise continuera de certifier et de vendre InterBase. C'est une garantie pour ceux qui ne veulent ou ne peuvent prendre le temps de valider les innovations proposées par l'Open Source. Tandis que pour ceux qui adoptent la version Open Source, la présence de Borland/Inprise est une garantie de convergence et d'intégration du produit. Début Octobre 2000, la version vendue est la 5.5, la version en Open Source la 6.01 . La présence simultanée d'un groupe d'initiatives Open Source et d'un acteur commercial est le meilleur modèle de développement d'un progiciel. Loin de s'opposer, ils s'appuient l'un sur l'autre et se renforcent. (C'est d'ailleurs le modèle que Linux est en train d'adopter).

IV. Ce qu'il vous faut

Dans le cadre de cet article, nous allons explorer la version Open Source. Pour la mettre en œuvre avec les outils de base que sont InterBase Express et IBConsole, vous devez avoir Delphi 5 Pro ou Entreprise, auquel vous aurez appliqué la mise à jour (dans le cas ou vous en seriez restés à la version d'origine car la mise à jour est indispensable pour utiliser la dernière version d'InterBase Express).

Evidemment, il vous faut aussi InterBase 6.01 que vous pouvez télécharger à partir du site de Borland. Pour ma part, j'utilise la version testée du site IBPhoenix.

InterBase 6 sur CD avec la Documentation est aussi disponible auprès du Centre Officiel de Borland : Diffus'Log - TEL : 01 34 63 07 01.

V. Installation

Pour installer InterBase sur votre poste de travail, exécutez le fichier IBWin32.exe :

  1. Sur la page Select Components, cochez InterBase 6.0 Server for Windows (et laissez coché InterBase 6.0 Client for Windows ainsi que les autres options)
  2. Sur la page ODBC Components, laissez coché InterBase ODBC 3.0 Driver.

En fin d'installation, vous devez rebooter.
Vous apercevrez alors InterBase Guardian en bas à droite de la barre des tâches.

Installez ensuite les dernières versions des composants InterBase Express et IBConsole.

Ouvrez IBConsole (à partir de Démarrer/Programmes/Interbase 6.0/IBConsole), et enregistrez le serveur local par le menu Server/Register

Le mot de passe est masterkey (en minuscules).

Image non disponible

Cliquez sur Ok. L'icône Local Server doit apparaître maintenant dans le volet gauche de l'explorer.

VI. Création d'une database

Toutes les tables, index et autres éléments sont rassemblés en un seul fichier database. L'extension usuelle est .gdb Vous pouvez créer autant de database que vous le souhaitez. Généralement un programme accèdera à une database dans laquelle se trouvent les tables et les index liés. Cliquez sur Local Server. Par menu Server/Login, ouvrez une connexion avec le serveur. (le mot de passe est bien entendu masterkey).

La connexion étant ouverte, vous voyez apparaître Databases dans le volet gauche. Par menu Database/CreateDatabase, ouvrez le panneau de création de la database.

Indiquez le nom d'alias, ainsi que le nom du fichier (avec l'extension .gdb)

Image non disponible

Cliquez sur Ok. Votre database est créée.

Par la suite, lorsque vous réouvrirez IBConsole, vous double-cliquez directement Local Server, puis MyInitialDatabase.

Par menu Database/Properties, puis onglet General, mettez l'option Forced Writes à Enabled.

Image non disponible

Cliquez sur Ok.

De retour dans l'explorer d'IBConsole, vous voyez les différentes composantes d'une database :

Image non disponible

Intéressons-nous à la principale de ces composantes : la table.

VII. Création d'une table

Vous pouvez créer votre première table directement à partir d'IBConsole.
Par menu Tools/Interactive SQL, saisissez la commande suivante :

 
Sélectionnez
  1. CREATE TABLE MaTable 
  2. ( 
  3. Pk_Numero INTEGER NOT NULL, 
  4. Nom VARCHAR(30), 
  5. Telephone CHAR(16), 
  6. DateAppel TIMESTAMP, 
  7. Rappeler CHAR(1), 
  8. Montant NUMERIC(18,4), 
  9. CONSTRAINT Pk_Numero PRIMARY KEY (Pk_Numero) 
  10. ) 

puis exécutez la par Query/Execute. Votre première table est crée.
Fermez le panneau Interactive SQL. Pour ne voir que votre table dans la liste, décochez View/System Data.
Double-cliquez sur MATABLE. Vous voyez la structure de votre table. L'onglet Metadata vous montre l'ordre SQL régénéré automatiquement par IBConsole à partir de la structure de la table. Enfin, l'onglet Data vous permet de saisir des données.

Image non disponible

Vous êtes devant une DBGrid. Voyons maintenant comment intégrer une table dans un programme Delphi.

VIII. Programme Delphi

Créez un projet Delphi. Ajoutez un Module de données (DataModule). A partir de l'onglet InterBase Express de la palette de composants,

Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible

Modifiez les propriétés suivantes :

Composant Propriété Valeur
IBDatabase1 DatabaseName C:\Program Files\Borland\Delphi5\Projects\Data\Initial.gdb
IBDatabase1 DefaultTransaction IBTransaction1
IBDatabase1 SQLDialect 3
IBTransaction1 DefaultDatabase IBDatabase1
IBQuery1 Database IBDatabase1
IBQuery1 SQL SELECT * FROM MATABLE
DataSource1 DataSet IBQuery1
Image non disponible

Sur la Form1, placez à partir de l'onglet ContrôleDB, un composant DBNavigator et un composant DBGrid. Faites F12 pour afficher le code de la Form1. Dans la liste des uses, ajoutez Unit2. Puis F12 pour revenir sur la Form. Mettez les propriétés suivantes :

Composant Propriété Valeur
DBNavigator Align alBottom
DBNavigator DataSource DataModule1.DataSource1
DBGrid Align alClient
DBGrid DataSource DataModule1.DataSource1

Dans DataModule1, mettez les propriétés Connected de IBDatabase et Active de IBTransaction et IBQuery à True.

Vous devez voir les données saisies précédemment. Compilez, éxécutez.

Votre premier programme d'accès à une database InterBase est prêt!

Pour que votre programme puisse ajouter, modifier ou supprimer des données, nous allons transformer la requête statique ci-dessus en une requête dynamique : déposez sur le Module de données (DataModule), à partir de l'onglet InterBase Express le composant

  1. IBUpdateSQL

Modifiez les propriétés suivantes :

Composant Propriété Valeur
IBQuery1 UpdateObject IBUpdateSQL1
IBUpdateSQL1 (1) DeleteSQL delete from MATABLE
where
PK_NUMERO = :OLD_PK_NUMERO
IBUpdateSQL1 InsertSQL insert into MATABLE
(PK_NUMERO, NOM, TELEPHONE, DATEAPPEL, RAPPELER, MONTANT)
values
(:PK_NUMERO, :NOM, :TELEPHONE, :DATEAPPEL, :RAPPELER, :MONTANT)
IBUpdateSQL1 ModifySQL update MATABLE
set
PK_NUMERO = :PK_NUMERO,
NOM = :NOM,
TELEPHONE = :TELEPHONE,
DATEAPPEL = :DATEAPPEL,
RAPPELER = :RAPPELER,
MONTANT = :MONTANT
Where
PK_NUMERO = :OLD_PK_NUMERO
IBUpdateSQL1 RefreshSQL Select
PK_NUMERO,
NOM,
TELEPHONE,
DATEAPPEL,
RAPPELER,
MONTANT
from MATABLE
where
PK_NUMERO = :PK_NUMERO
DataSource1 DataSet IBQuery1

(1) Dans la version Delphi 5 Entreprise, les ordres SQL de IBUpdate peuvent être générés automatiquement :

  1. Mettez la propriété Active de IBDatabase1 à True. Faites de même avec IBTransaction1 et IBQuery1.
  2. Cliquez droit sur IBUpdateSQL1 et activez l'Editeur IBUpdateSQL.
  3. Cliquez sur Sélectionner les clés primaires, puis sur Générer le SQL. Tous les ordres SQL d'IBUpdateSQL1 sont alors automatiquement générés.

Compilez, Exécutez :

Votre première application InterBase fonctionne.

Image non disponible

IX. Pour aller plus loin

  1. Consultez la documentation (en anglais) livrée avec InterBase 6.0
  2. Consultez les forum Delphi ainsi que Delphi et bases de données de www.developpez.com
  3. Abonnez-vous au news.group Interbase en français.
  4. Revenez ici, dans quelques temps pour les prochains articles
    1. Table Maitre/Détail avec InterBase
    2. Outils d'administration pour InterBase
    3. Outils de migration de données.

X. Mises à jour de l'article

Modifications et ajouts du 16/10/2000
Si vous téléchargez les dernières mises à jour des IBX (version 4.2 ou 4.3) vous devez savoir qu'elles vont remplacer, entre autres, les fichiers Delphi suivants VCLIB50.BPL, VCLIB50.DCP, DCLIB50.BPL et DCLIB50.DCP . Ce qui peut conduire à des incompatibilités. D'autant que VCLIB50.BPL (qui passe d'une taille de 366 Ko avec Update Pack 1 à une taille de 476 Ko avec IBX) fait partie des fichiers à déployer et ne devrait jamais être modifié hors des versions et mises à jour de Delphi lui-même. De plus, les sources de ces nouvelles versions ne sont pas fournis.
Pour ma part, je m'en tiens à l'Update Pack 1 de Delphi 5 Entreprise.
Si néanmoins vous n'avez pas les IBX, ou si vous tenez absolument aux mises à jour des IBX, cliquez ici, mais vous aurez été prévenus!
Quelques précisions et liens supplémentaires faites dans l'historique.

Modifications et ajouts du 5/3/2001:
Mise à jour des liens

Interbase
Ma première base InterBase
Delphi 6 et InterBase 6
dbExpress avec Delphi 6
Delphi 6 Relationnel
Le bon PLAN d'InterBase
MDA (Model Driven Architecture)
MDA
Programmez avec les diagrammes de Delphi 7
Les objets métiers avec ModelMaker de Delphi 7
Les Design Patterns avec ModelMaker de Delphi 7
Autres articles
Les transactions
Mise à jour de Delphi 6

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Henry Cesbron Lavau. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.