Академический Документы
Профессиональный Документы
Культура Документы
DELPHI et INTERBASE,
Premiers pas
Bien que le sujet ai t souvent abord, le nombre de personnes qui ont encore
du mal utiliser le couple infernal Delphi et Interbase est assez important si on
en croit la lecture des News Groups sur le sujet. Voici donc une modeste
contribution pour aider tous ceux qui dsirent aborder le sujet pas pas, en
vitant nombres dcueils.
uDm.pas. Nous renommons notre composant IBDB que nous trouvons plus
pratique que IBDatabase1.
Double cliquez sur le composant que vous venez de dposer et renseignez les
zones afin de vous connecter la base sample.GDB que nous vous proposons
avec ce tutoriel.
Avant de refermer, nhsitez pas cliquer sur le bouton Tester afin de vous
assurer que la connexion se passe bien. Si ce nest pas le cas, un
renseignement est faux.
Merci de poser la question. Interbase est un moteur de base de donnes transactionnel. Les
transactions supportent gnralement 3 ordres
Start Dmarre la transaction
Commit Approuve la transaction
RollBack Annule la transaction
Vous tes chargs (votre application) de dbiter le compte de Monsieur A pour crditer le
compte de monsieur B
Votre programme commence dbiter le compte A et soudain, panne de courant.
Dans un systme de fichier non transactionnel, monsieur A est dbit, alors que
monsieur B nest pas crdit, la somme disparue
Pour simplifier, sachez que la transaction conserve une copie de toutes les
modifications. Si vous conservez vos transaction ouvertes du dbut la fin de
lapplication, votre programme va devenir de plus en plus lent, Interbase va
avoir de plus en plus de travail Si vous utilisez la mme transaction pour
tous les composant Query ou Table, quallez vous commiter ou annuler ?
toutes les modifications, sur nimporte quelle table ?
end;
end;
Pour une relation entre deux tables, le principe est le mme, Datasource qui
rfrence Table1 dans proprit Datasource de table2 et renseignement du
champ MasterField de Table2.
IBDB.Connected:=True;
En mode fichier, une requte sur une table Paradox via le BDE (borland Database
Engine) rapatrie toutes les donnes vers votre application. Ceci sexplique par le
fait que nous navons pas, dans ce cas, un programme dit le serveur qui fait
la slection pour nous.
En mode client Serveur, la requte est excute sur le serveur et seul le rsultat
est rapatri.
Donnes partielles
Le cas classique est la DBCombolistBox qui utilise une requte SQL et qui
naffiche quune seule ligne alors que la table en contient dix et plus.. La
raison est assez simple comprendre. Ce composant nappelle pas les lignes
automatiquement mais simplement la premire. Le fetch ne porte que sur une
ligne. Pour afficher toutes les lignes, utilisez linstruction maTIBQuery.FecthAll ;
Autre cas classique, les modification effectue sur un poste ne sont pas visibles
sur un autre. Ceci peut paratre bizarre, mais cest entirement normal.
La raison ? Cest la logique mme du mode client Serveur. Les donnes affiches
dans votre programme, le client, ne sont en ralit quune copie partielle un
instant T de la base qui rside dans le serveur. Pour vrifier que vous disposez
de la dernire mise jour, vous devez rafrachir les donnes. Le seul vrai moyen
de rafrachir les donnes et de rejouer la requte. La fermer et la rouvrir.
Le dclencheur
La procdure stocke
end;
end;
Voici que sachve ce tutorial. Nous esprons quil vous aura apport ce que vous
cherchiez..
Ou trouver Interbase ?
Sur le site de Borland
http://www.borland.com/devsupport/interbase/opensource/
Pour mener bien ces oprations, il faut videmment que la base existe dj.
Vous pouvez la crer partir de IBConsole, ou la gnrer partir dun script.
Cest ce que nous allons voir dans le paragraphe qui suit.
JJM - www.delp hicenter.net Oct 2001
Spcialistes de lhbergement dapplications internet Delphi et Interbase
Delphi et Interbase
Idalement, il est prfrable de crer deux scripts. Le premier pour crer la base,
le second pour la renseigner.
Pourquoi ? Vous pouvez bien sr crer un script global, mais Interbase va
rechigner sur le Dialect 3 et vous proposer de crer un Dialect 1. En soit, ce nest
pas trs grave. Sauf que dans certains cas, lutilisation du Dialect 1 interdira
certains ordres du script qui ncessitent le Dialect 3. Pour viter ce genre de
dsagrment, autant prendre de bonnes habitudes en sparant la cration de la
base du script de renseignement.
COMMIT WORK;
uInitInterbase.pas : Sert dans l'exemple pour initialiser la base partir d'un fichier ini (joint)
La base dessai et