Delphi et Interbase © JJM - www.delp hicenter.net Oct 2001 Spécialistes de l’hé

Delphi et Interbase © JJM - www.delp hicenter.net Oct 2001 Spécialistes de l’hébergement d’applications internet Delphi et Interbase DELPHI et INTERBASE, Premiers pas Traditionnellement, Delphi et les bases de données font bon ménage. De la à dire que Delphi est l’outil idéal pour développer des frontaux de bases de données, il n’y a qu’un pas que vous pouvez franchir. En réalité, ce s erait une vue assez restrictive des très larges possibilités offertes par cet outil de développement. 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 désirent aborder le sujet pas à pas, en évitant nombres d’écueils. Nous considérerons que vous avez téléchargé Interbase (client et serveur), et la dernière version de IBExpress et que ceux ci sont correctement installés sur votre PC. Le serveur Interbase peut bien sûr être installé sur un Pc du réseau autre que votre machine de travail. Vous pouvez compléter la lecture de ce tutorial par les excellents tutoriaux de Henry Cesbron Lavau sur le Web à l’adresse : http://www.developpez.com/hcesbronlavau/IB6Delphi6.htm Première étape : Création d’un nouveau projet • Fichier / Nouveau / Application • Fichier / Nouveau / Module de données Sélectionnez l’onglet Interbase, puis le composant TIBDatabase et déposez le sur le Datamodule, que nous avons nommé DM et enregistré dans l’unité Delphi et Interbase © JJM - www.delp hicenter.net Oct 2001 Spécialistes de l’hébergement d’applications internet Delphi et Interbase uDm.pas. Nous renommons notre composant IBDB que nous trouvons plus pratique que IBDatabase1. Double cliquez sur le composant que vous venez de déposer et renseignez les zones afin de vous connecter à la base sample.GDB que nous vous proposons avec ce tutoriel. Comme vous pouvez le constater sur la photo ci- contre, nous avons choisi : • Une connexion distante • Indiqué notre adresse IP • Sélectionné le Protocole TCP • Indiqué le chemin et le nom de la base • Renseigné le login SYSDBA et le mot de passe masterkey qui sont ceux par défaut • Sélectionné un jeu de caractère par défaut. Avant de refermer, n’hésitez pas cliquer sur le bouton « Tester » afin de vous assurer que la connexion se passe bien. Si ce n’est pas le cas, un renseignement est faux. Deuxième étape : Ajouter une transaction Dans la palette de composant Interbase, sélectionnez un composant TIBTransaction (le cinquième en partant de la gauche) et déposez le sur le Datamodule. Delphi et Interbase © JJM - www.delp hicenter.net Oct 2001 Spécialistes de l’hébergement d’applications internet Delphi et Interbase Renseignez la propriété DefaultDatabase en sélectionnant le nom du composant TIBDatabase. Cliquez sur le composant de base de données IBDB (TIBDatabase) et renseignez la propriété DefaultTransaction en indiquant la transaction que nous venons de déposer et que nous avons nommé IBTrans. Dans la photo ci-contre, le renseignement des propriétés du composant TIBDataBase. Très bien mais « A quoi sert la transaction » ? Merci de poser la question. Interbase est un moteur de base de données transactionnel. Les transactions supportent généralement 3 ordres • Start Démarre la transaction • Commit Approuve la transaction • RollBack Annule la transaction D’accord, mais à quoi ça sert ? Supposons le cas suivant : Vous êtes chargés (votre application) de débiter le compte de Monsieur A pour créditer le compte de monsieur B Votre programme commence à débiter le compte A et soudain, panne de courant. Dans un système de fichier non transactionnel, monsieur A est débité, alors que monsieur B n’est pas crédité, la somme à disparue… Dans un système transactionnel, le compte de monsieur A ne sera réellement débité que lorsque la transaction aura été approuvée par un Commit. StartTransaction Débit du compte A Crédit du compte B Commit Delphi et Interbase © JJM - www.delp hicenter.net Oct 2001 Spécialistes de l’hébergement d’applications internet Delphi et Interbase Si un incident se passe durant l’opération, le programme utilisera l’ordre RollBak pour annuler la transaction démarrée par StartTransaction Avant d’aller plus loin, notez que • Une transaction globale ne peut satisfaire tous les besoins d’une application. • Qu’une transaction doit être ouverte et refermée aussi tôt que possible. Pour simplifier, sachez que la transaction conserve une copie de toutes les modifications. Si vous conservez vos transaction ouvertes du début à la fin de l’application, votre programme va devenir de plus en plus lent, Interbase va avoir de plus en plus de travail… Si vous utilisez la même transaction pour tous les composant Query ou Table, qu’allez vous commiter ou annuler ? toutes les modifications, sur n’importe quelle table ? Il est important de dissocier les transactions en utilisant autant de composants que nécessaire en fonction des besoins de l’application. L’exemple ci-dessous démontre l’emploi d’une transaction indépendante de celle définie par défaut. Procedure UpdateMatable(MaChaine : String); Const cMaRequeteUpdate = ‘UPDATE MaTable SET MonChamp=%S’; begin With TIbSQL.Create(Nil) do begin try Database := IBDB; Transaction := TibTransaction.Create(Self); Transaction.StartTransaction; SQL.Text := Format(cMaRequeteUpdate,[MaChaine]); try ExecQuery; Transaction.Commit; Except On E: Exception do begin ShowMessage(‘UpdateMatable ’ + #13 + e.message); if Transaction.InTransaction then Transaction.RollBack; end; end; finally Free; end; Delphi et Interbase © JJM - www.delp hicenter.net Oct 2001 Spécialistes de l’hébergement d’applications internet Delphi et Interbase end; end; Troisième étape : Ajouter une requête (TIBQuery) De nouveau dans la palette Interbase, sélectionnez un composant TIBQuery (le second en partant de la gauche) et déposez le sur le DataModule. Double cliquez sur le champ de la propriété DataBase, le nom de la connexion à la base apparaît. Si c’est pas le cas, sélectionnez dans la liste déroulante. La transaction par défaut se renseigne toute seule Cliquez sur le bouton de la propriété SQL (à droite) et saisissez votre requête SQL Ex : Select * From MaTable ou MaTable correspond au nom d’une table de la base Quatrième étape : Ajouter un TIBUpdateSQL De nouveau dans la palette Interbase, sélectionnez un composant TIBUpdateSQL (le sixième en partant de la gauche) et déposez le sur le DataModule. Donnez lui un nom et double clichez sur la propriété UpdateObject de notre TIBQuery. Le nom de notre nouveau composant apparaît. A quoi sert le UpdateSQL ? Delphi et Interbase © JJM - www.delp hicenter.net Oct 2001 Spécialistes de l’hébergement d’applications internet Delphi et Interbase A gérer automatiquement les opérations de modification / Ajout / Effacement et Rafraîchissement. Si vous disposez d’une version entreprise de Delphi, un assistant vous aide à remplir les quatre requêtes. Sinon, voici un exemple de requête Update (vous trouverez les autres dans le projet exemple joint) update TB_PLANNER set PLA_PK = :PLA_PK, STARTTIME = :STARTTIME, ENDTIME = :ENDTIME, SUBJECT = :SUBJECT, COLOR = :COLOR, IMAGE = :IMAGE, CAPTION = :CAPTION, NOTES = :NOTES where PLA_PK = :OLD_PLA_PK Notez le double point devant dans l’expression STARTTIME = :STARTTIME Ceci indique à Delphi qu’il s’agît d’un paramètre qui sera renseigné automatiquement par la valeur correspondante. Nb : Ne perdez pas de temps à renseigner les autres requêtes maintenant, vous aurez tout loisir de le faire ensuite en vous inspirant de l’exemple joint à télécharger. Cinquième étape : Ajouter une un TDATASource Delphi et Interbase © JJM - www.delp hicenter.net Oct 2001 Spécialistes de l’hébergement d’applications internet Delphi et Interbase Qu’est ce donc que ce composant, à quoi sert-il ? Delphi distingue les composants d’accès aux données des composants dits visuels (Ex : un champ de saisie). Pour relier les composants invisibles aux composants visuels, on utilise un composant tiers, le TDataSource. Extrait de l’aide de Delphi Utilisez TDataSource pour : Fournir un canal entre un ensemble de données et les contrôles orientés données d'une fiche permettant ainsi l'affichage, les déplacements, et la modification des données de l'ensemble de données sous-jacent. Maintenant que nous savons à quoi sert le composant, voyons comment l’employer. Pour connecter le composant de base de données avec le DataSource indiquez simplement le nom du composant dans la propriété DataSet Donnez un nom au DataSource Notez que le composant TDataSource peut églement servir à connecter deux tables (requêtes) pour créer une relation Maître Détail. Si vous utilisez deux requêtes Exemple : Requête 1 = SELECT ID, CHAMP1, CHAMP2 From TableMaitre Requête 2 = SELECT IDMAITRE, CHAMP1, CHAMP2 From TableDETAIL WHERE IDMAITRE=:ID Delphi et Interbase © JJM - www.delp hicenter.net Oct 2001 Spécialistes de l’hébergement d’applications internet Delphi et Interbase Le renseignement de la relation IDMAITRE=:ID peut être automatiquement mis à jour par Delphi. Pour ce, il suffit d’indiquer le DataSource qui référence la requête1 dans la propriété DataSource de la requête 2. Pour une relation entre d eux tables, le principe est le même, Datasource qui référence Table1 dans propriété Datasource de table2 et renseignement du champ MasterField de Table2. Sixième étape : Ajouter un composant Visuel Au tout début du tutoriel, nous avons créé une nouvelle application qui a créé une fiche vierge. Sélectionnez l’unité Unit1 et déclarez l’unité uDm dans la section implementation comme dans l’exemple ci-dessous uploads/Finance/ info-firebird-interbase 1 .pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Apv 21, 2021
  • Catégorie Business / Finance
  • Langue French
  • Taille du fichier 0.3246MB