Ma première base InterBase

Henry Cesbron Lavau

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.

- Titre : Ma première base InterBase

- Auteur : Henry Cesbron Lavau

- Parution : 5 mars 2001

- Mise à jour : 27 avril 2020

- Licence : 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.

Sommaire

- I. Introduction

- II. Vous abordez InterBase parce que

- III. Historique

- IV. Ce qu'il vous faut

- V. Installation

- VI. Création d'une database

- VII. Création d'une table

- VIII. Programme Delphi

- IX. Pour aller plus loin

- X. Mises à jour de l'article

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 droits 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 où vous en seriez resté à la version d'origine, car la mise à jour est indispensable pour utiliser la dernière version d'InterBase Express).

Évidemment, 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).

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 databases 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)

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

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

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

Cliquez sur OK.

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

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 :

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.

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). À partir de l'onglet InterBase Express de la palette de composants,

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

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, exé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.

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 quelque 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évenu !
Quelques précisions et liens supplémentaires faits dans l'historique.

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