DELPHI 6 Support de formation (2/3) Les bases de données Delphi 5: Les bases de
DELPHI 6 Support de formation (2/3) Les bases de données Delphi 5: Les bases de données 1. CREATION D'UNE BASE 1.1 Rappels Une base de données est une collection d'objets (exemple: recettes de cuisine, unités centrales, relations d'affaires, articles vendus, etc.). Pour que cette collection soit intéressante, il est souhaitable que les objets présentent au moins une propriété ou méthode commune. Une base de donnée est composée de champs (propriétés) et d'enregistrements (chaque objet). Pour créer une base, il est nécessaire de définir les champs (type, longueur, index, ...). Ensuite, il n'y a qu'à saisir les enregistrements. Les index permettent de retrouver rapidement un enregistrement. On distingue l'index principal (de préférence unique, c'est souvent un compteur) et les index secondaires qui évitent la lecture de tous les enregistrements lors de la recherche. Lors de l'affichage des enregistrements, le tri se fait sur l'index principal (ou secondaire si spécifié) On distingue deux modes d'exploitation: mono-base (une seule base est exploitée) et multi-bases (plusieurs bases ou tables sont mises en relation). 1.2 Utilisation de l'outil intégré Dans le menu "Outils", choisir "Module Bases de données". Attendre le chargement de l'utilitaire qui est très proche de PARADOX 7 (Borland). Dans le nouveau menu "Fichier", choisir "Nouveau" puis "Table" et enfin "Paradox 7". L'écran suivant s'affiche et permet de définir les champs. © Maurice GINDENSPERGER (V 5.1) page 2/42 Delphi 5: Les bases de données Les types de champ peuvent être les suivants (table de type Paradox): Une fois la table enregistrée, il est préférable de donner un alias ("Gescom") à son répertoire, ce qui permettra de la retrouver plus rapidement. Dans le menu "Outils" choisir "Gestionnaire d'alias" pour afficher la boîte de dialogue suivante. Pour le chemin d'accès, on peut cliquer sur le bouton "Parcourir". Valider. On peut saisir quelques enregistrements. Pour ce faire, choisir "Fichier" puis "Ouvrir" et "Table". L'alias créé nous sert déjà. Pour saisir, il suffit de passer en mode édition par l'option "Editer les données" dans le menu "Table". Après saisie, fermer et quitter. © Maurice GINDENSPERGER (V 5.1) page 3/42 Delphi 5: Les bases de données 2. EXPLOITATION AVEC DELPHI 2.1 Visualisation de la base Créer un nouveau projet Delphi. Choisir Fichier - Nouveau - Module données Y placer un composant "TTable" et "TDatasource" © Maurice GINDENSPERGER (V 5.1) page 4/42 Delphi 5: Les bases de données Attribuer au premier les propriétés "DatabaseName" à "Gescom" (alias choisi dans la liste déroulante), "TableName" à "Ficli.db" (choisi); "Name" à "TableClients". Pour le second, il suffit de mettre "DataSet" à "TableClients" et "Name" à "SourceClients". A) Se placer dans la fiche (Form1). B) Fichier Utiliser Unit2 (c'est le nom du module de données). C) Placer un composant "TDBGrid" et en affecter la propriété "DataSource" à "Datasource1" (nom du composant précédent). D) Sélectionner le composant "TableClients" dans le module de données et mettre "Active" à "true". Si tout est correct, les données apparaissent dans la grille. Les colonnes peuvent être redimensionnées et déplacées à l'exécution. Pour le faire dans l'étape de conception, il faut utiliser le menu contextuel de la grille: éditeur de colonnes. Choisir "ajouter tous les champs" pour obtenir l'affichage suivant: L'éditeur de propriétés permet de modifier certaines propriétés, notamment le nom du titre de la colonne. Il est également possible de prévoir des listes déroulantes (PickList) et des boutons d'action (événement OnEditButtonClick) pour chaque champ. © Maurice GINDENSPERGER (V 5.1) page 5/42 Delphi 5: Les bases de données Exercice: changer le nom des colonnes et mettre une liste déroulante de villes (Mulhouse, Colmar, Strasbourg). Enregistrer le projet, exécuter. Vérifier l'ajout et la modification. 2.1.1 Accès aux champs On peut accéder au contenu d'un champ, soit par son indice, soit par son nom. Le résultat renvoyé est toujours de type variant (transtypage à effectuer). Pour utiliser le variant, il est possible de se référer à la propriété "value" du champ. • Accès par indice: NomTable.Fields[Indice] • Accès par nom: NomTableNomChamp ou NomTable.FieldByName('NomChamp') Exemple: Edit1.Text:=Table1Nom.AsString; Transtypages: AsBoolean, AsCurrency, AsDateTime, AsFloat, AsInteger, AsString. Positionnement sur un champ: Il se fait par la méthode FocusControl du champ. Rq: accès au champ sélectionné dans 1 grille: DbGrid1.SelectedField. © Maurice GINDENSPERGER (V 5.1) page 6/42 Delphi 5: Les bases de données 2.2 Navigation dans une base 2.2.1 Avec le composant dédié Placer un composant "TDBNavigator" et positionner sa propriété "Datasource" à "SourceClients" (nom de la source utilisée). BOUTON ROLE Premier (first) Le premier enregistrement de l'ensemble de données devient l'enregistrement courant, les boutons Premier et Précédent sont désactivés et les boutons Suivant et Dernier sont activés Précédent (prior) L'enregistrement précédent devient l'enregistrement courant, les boutons Dernier et Suivant sont activés Suivant (next) L'enregistrement suivant devient l'enregistrement courant et les boutons Premier et Précédent sont activés Dernier (last) Le dernier enregistrement de l'ensemble de données devient l'enregistrement courant, les boutons Dernier et Suivant sont désactivés et les boutons Premier and Précédent sont activés Insérer (insert) Insère un nouvel enregistrement qui précède l'enregistrement courant et bascule l'ensemble de données en mode insertion et modification Supprimer (delete) Supprime l'enregistrement courant et l'enregistrement suivant devient l'enregistrement courant Modifier (edit) Bascule l'ensemble de données en mode modification pour que l'enregistrement courant puisse être modifié Emettre (post) Ecrit les modifications de l'enregistrement courant dans la base de données Annuler (cancel) Annule les modifications dans l'enregistrement courant et restitue l'état de l'affichage de l'enregistrement tel qu'il était avant la modification, désactive les modes insertion et modification s'ils sont actifs Rafraîchir (refresh) Réaffiche l'enregistrement courant de l'ensemble de données, provoquant ainsi la mise à jour de l'affichage de l'enregistrement sur la fiche Remarque: je n'ai pas de bouton pour ajouter immédiatement un enregistrement à la fin, mais la méthode existe (append). © Maurice GINDENSPERGER (V 5.1) page 7/42 Delphi 5: Les bases de données 2.2.2 En créant ses propres outils Une base de donnée peut être exploitée en mode liste comme précédemment, mais également en mode formulaire plus propice à la saisie. Créer un nouveau projet. A l'aide du gestionnaire de projet, ajouter le module de données défini précédemment au cours de l'exercice précédent. Faire utiliser ce module par la fiche principale (Form1). Demander un menu contextuel sur le composant TTable et choisir l'éditeur de champs. Dans le menu contextuel de ce dernier, choisir "ajouter champs". On peut choisir ici les champs qui seront utilisés dans la fiche (les choisir tous). Il est alors enfantin de placer les champs dans la fiche par cliquer-glisser, individuellement ou collectivement (selon sélection). Placer des boutons pour exploiter la table: premier, précédent, suivant, dernier. Les procédures existent et peuvent être attribuées à DataModule2.TableClients (ex: DataModule2.TableClients.First) : first, prior, next, last. Rajouter des boutons: • insérer (insert) et ajouter à la fin (append), • modifier (edit) • valider (post), • abandonner (cancel), • détruire (delete), • mise à jour (refresh), • et un bouton pour quitter l'application. © Maurice GINDENSPERGER (V 5.1) page 8/42 Delphi 5: Les bases de données Enregistrer le projet et exécuter. Options: • rajouter un menu et une barre d'outils qui vont remplacer les boutons • écrire un gestionnaire commun unique pour les événements • sécuriser la suppression ("MessageDlg") • afficher en rouge les montants supérieurs à 5000 francs 2.3 Etats des tables Suivant les opérations effectuées (par exemple avec le navigateur), la table (plutôt le "Dataset") se place dans différents états renvoyés par sa propriété "State". VALEUR SIGNIFICATION dsInactive L'ensemble de données est fermé ; ses données sont donc inaccessibles. dsBrowse Il est possible de consulter mais pas de modifier les données. C'est la valeur par défaut à l'ouverture d'un ensemble de données. dsEdit L'enregistrement actif peut être modifié. dsInsert Il est possible d'insérer un nouvel enregistrement. dsSetKey TTable uniquement. La recherche d'enregistrement est activée ou une opération SetRange est en cours. Seule la visualisation d'un sous-ensemble des enregistrements est possible, mais pas la modification ou l'ajout de données. dsCalcFields Un événement OnCalcFields est en cours. Les champs non-calculés ne peuvent être modifiés et il n'est pas possible d'ajouter de nouveaux enregistrements. dsFilter Un événement OnFilterRecord a lieu. Seule la visualisation d'un sous- ensemble des enregistrements est possible, mais pas la modification ou l'ajout de données. © Maurice GINDENSPERGER (V 5.1) page 9/42 Delphi 5: Les bases de données 2.4 Tri sur index dans une table Le tri se fait automatiquement sur l'index principal. Si l'on désire utiliser un index secondaire, il faut fermer préalablement la table. Exemple: Table1.close; Table1.IndexName:='NomIndexSecondaire'; Table1.open; 2.5 Recherche dans une table sur un champ indexé Il existe différentes instructions. Parmi elles, on note "SetKey" qui permet d'attribuer une valeur de recherche à la propriété "Fields" de la table suivie de "GotoKey" pour une recherche exacte et " GotoNearest" pour une recherche approchée. Dans tous les cas, une valeur "false" est retournée si la recherche n'a pas pu aboutir. Exemples: Table1.SetKey; Table1.['NomChampIndex']:=Edit1.Text; if not Table1.GotoKey then showmessage('pas vu'); Table1.Setkey; Table1.['NomChampIndex']:=Edit1.Text; Table1.GotoNearest; 2.6 Etablissement d'un filtre On peut utiliser la propriété "Filter" pour définir le filtre (ex: NOM='B*'). Pour lancer le filtrage, il faut mettre "Filtered" à "true". 2.7 Utilisation de signets Les signets permettent de mémoriser un emplacement dans uploads/Finance/ delphi-les-bases-de-donnees.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/RDjaI1PpSxkYcTSndkqYPB0hLKFY6KfKyTcDMnHIRjTYkwPqM2Od9W1WuiGwmtpLbLFLOmziUMo6jrOy8MlVx4w5.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/M3PyTzdIP573zl3AmMwvbNXYlScN8qNcYK82DHEte4BpLGjsUEbd4cqONsXEViNN9cwgMJkCRgU8gdJ6tHP1qPeo.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/g49gMJatQty3W3EuJ3hTAGOthlf9ObQlO09DUmQQ9ke5Cjckf1KOqtfoDfHcKRnfQ0xLx8yGuXJFgc9sootdAu0I.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/kJ2xRw4YdT0FilCaiivxIAsgFJypBM2icZX6pDLyfntIagWivdUbXPuCADvYoTotVJhxYHwH1y5XqDIR4XrqTY4x.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/qvLASdsfpRRwyF2e63PS5Q1DZYQedmb9GU4tylEOwDBharG1FQaG6N4JmuiF7vx9Mfp4zJouKd1CQuGqssiemwKe.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/tFKKl2Qst78cohCDHtL3LCRhuWH8tlRRsYIUnTrEnq3BL9YaJgNv8OYJB71QEO4OwKS5QTWq8xQYSQzwctCDcYWF.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/Ts1L6qvHjO8fBZO1CPypjdeunaKBJsqVwdHtCC0ngRn8P0LcJIxqlKCYwoMqnvspBdWRd3rE0b8CbLse5MAxx9Di.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/gVmu8mdb0r73BTlGYvsAxhDxiZyqAlliBThufnXaXVZ6wCqtDUGYBGgJio3iAF8htHdW2eJ111MjYui2xWXdHRlx.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/LV5dOWQH0DRTAGzyl8PrcORWoZEdrQkvBk3x89ZGpYEORvxOhk4StYYm1E54qjvrn9ImmHQD8Q408B7DFL3Tla1C.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/1y9uhCfqVi20beooEK7ivtHnTlz16zloo55KRYYp6PjUGJdxNdC95ZuqajXMRHWevAVm4GFt7J2GgzyNWo8mT0Gg.png)
-
22
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 18, 2021
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.6058MB