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 à .
InterBase
II. Vous abordez InterBase parce que▲
- Vous souhaitez sortir du BDE et passer au client/serveur ;
- Vous vous préparez à la prochaine version de Delphi (l'arrivée de dbExpress qui supportera InterBase) ;
- InterBase est passé en open source ;
- 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 :
- 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) ;
- 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 :
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE
TABLE
MaTable
(
Pk_Numero INTEGER
NOT
NULL
,
Nom VARCHAR
(
30
)
,
Telephone CHAR
(
16
)
,
DateAppel TIMESTAMP
,
Rappeler CHAR
(
1
)
,
Montant NUMERIC
(
18
,4
)
,
CONSTRAINT
Pk_Numero PRIMARY
KEY
(
Pk_Numero)
)
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
- IBUpdateSQL
Modifiez les propriétés suivantes :
Composant |
Propriété |
Valeur |
---|---|---|
IBQuery1 |
UpdateObject |
IBUpdateSQL1 |
IBUpdateSQL1 (1) |
DeleteSQL |
delete from MATABLE |
IBUpdateSQL1 |
InsertSQL |
insert into MATABLE |
IBUpdateSQL1 |
ModifySQL |
update MATABLE |
IBUpdateSQL1 |
RefreshSQL |
Select |
DataSource1 |
DataSet |
IBQuery1 |
(1) Dans la version Delphi 5 Entreprise, les ordres SQL de IBUpdate peuvent être générés automatiquement :
- Mettez la propriété Active de IBDatabase1 à True. Faites de même avec IBTransaction1 et IBQuery1 ;
- Cliquez droit sur IBUpdateSQL1 et activez l'Editeur IBUpdateSQL ;
- 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▲
- Consultez la documentation (en anglais) livrée avec InterBase 6.0.
- Consultez les forum Delphi ainsi que Delphi et bases de données de www.developpez.com.
- Abonnez-vous au news.group Interbase en français.
-
Revenez ici, dans quelque temps pour les prochains articles :
- Table Maitre/Détail avec InterBase ;
- Outils d'administration pour InterBase ;
- 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