Remplir le dialogue principal avec des composants (tutoriel dbExpress)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Tutoriel : Utilisation de dbExpress pour visualiser et mettre à jour les bases de données d'une application

Dans cet exemple, les composants visuels de la boîte de dialogue fournissent plusieurs capacités :

  • Choisir une connexion de base de données
  • Choisir une table de la base de données
  • Afficher et naviguer parmi les données de la base de données
  • Mettre à jour les données de la base de données
  • Exécuter les instructions SQL sur la base de données

D'égale importance, les composants non visuels de la boîte de dialogue fournissent les objets nécessaires à la connexion et à la manipulation des bases de données :

  • Connexion à la base de données
  • Ensembles de données pour les données
  • Fournisseur pour l'obtention des données d'un ensemble de données et la résolution des mises à jour sur cet ensemble de données
  • Source de données pour les composants orientés données

Voici à quoi ressemble la fiche après l'assemblage des composants :

TutorialdbExpressMainDialog.png


Les cinq composants non visuels (le TSQLConnection et les autres) sont présentés dans une colonne en haut d'une zone de liste, mair leur emplacement sur la fiche n'a pas d'importance.

Créer un projet

Créez un nouveau projet.

  • Pour Delphi, choisissez Fichier > Nouveau > Application Fiches VCL - Delphi.
  • Pour C++, choisissez Fichier > Nouveau > Application Fiches VCL - C++Builder.

Définissez la propriété Caption de la fiche sur "DB ClientDataSet Data Update Tool". Définissez la propriété Width de la fiche sur 650 et sa propriété Height sur 375.

Cliquez sur Fichier > Tout enregistrer pour enregistrer le projet.

  • Pour Delphi, enregistrez le fichier sous cdsmain.pas. Enregistrez le projet sous DB_CDSDataUpdated.dproj.
  • Pour C++, enregistrez le fichier sous cdsmain.cpp. Enregistrez le projet sous DB_CDSDataUpdated.cbproj.

Ajouter des composants visuels

Depuis la Palette d'outils, faites glisser un composant TComboBox dans le coin supérieur gauche de la fiche. L'application utilise ce contrôle pour lister les connexions de base de données disponibles. Définissez la propriété Name sur "ComboBoxConnections". Définissez AutoDropDown sur true. Choisissez csDropDownList pour Style. Définissez TextHint sur "Connection Name" et ShowHint sur true.

Faites glisser un TLabel auprès du TComboBox et définissez la propriété Caption du TLabel sur "SQL:".

Faites glisser un TEdit sur la droite du TLabel. Ce contrôle montre la commande SQL en cours permettant d'accéder à la base de données. Définissez la propriété Name du TEdit sur "EditSQL". Laissez vide la propriété Text.

Faites glisser un autre composant TEdit sous le TComboBox. Ce contrôle affiche une expression en tant que filtre pour déterminer quelles tables de base de données sont listées dans le TListBox ci-dessous. Définissez la propriété Name sur "EditFilter". Définissez aussi la propriété Hint sur "Filter (Use * as wildcard)" et la propriété Text sur "Filter (* as wild)" pour fournir un conseil et un texte initial pour ce champ.

Placez un TCheckBox auprès du filtre TEdit et définissez la propriété Caption du TCheckBox sur "Open". Ce TCheckBox indique si l'ensemble TClientDataSet est actif. Définissez la propriété Name du TCheckBox sur "CheckBoxActive".

Faites glisser un composant TDBNavigator auprès du composant TCheckBox. Vous utiliserez ce contrôle pour naviguer parmi les enregistrements de la base de données et effectuer des opérations sur les données.

Placez un TButton auprès du TDBNavigator pour mettre à jour une base de données après la modification des données. Définissez la propriété Caption du TButton sur "Apply Updates". Définissez la propriété Name du TButton sur "ButtonApply".

Sous le filtre TEdit, placez un composant TListBox. Le TListBox liste les tables disponibles dans la connexion de base de données sélectionnée, correspondantes au texte de filtre du composant TEdit ci-dessus. Pour la propriété Anchors, définissez tous les ancrages sur true, à l'exception de akRight. Ceci maintient la position en cours du TListBox relativement par rapport à un bord de la fiche, même si la fiche est redimensionnée, à l'exception du côté droit du TListBox.

Finalement, faites glisser un TDBGrid auprès du TListBox. Ce composant affiche et manipule les enregistrements d'un ensemble de données, en libellant automatiquement chaque colonne de table avec le nom de base de données de la colonne. Nous pouvons utiliser le TDBNavigator pour se déplacer au sein du TDBGrid. Pour la propriété Anchors, définissez les quatre ancrages sur true. Ceci maintient la position en cours du TDBGrid relativement par rapport à un bord de la fiche, même si la fiche est redimensionnée.

Redimensionnez tous les composants de façon appropriée à leur emplacement sur la fiche. Enregistrez tout.

Ajouter des composants de base de données

Ajoutons maintenant les composants pour communiquer avec la base de données. Au fur et à mesure que nous les plaçons sur la fiche, nous définissons leurs propriétés pour fournir les connexions nécessaires entre eux. Puisque ces composants sont non visuels, leur emplacement sur la fiche est une question de commodité. Dans cet exemple, nous les plaçons séquentiellement dans une colonne en reflétant l'ordre du flux de données.

Plaçons d'abord un composant TSQLConnection. Ce composant encapsule une connexion dbExpress à un serveur de base de données. Nous établissons la connexion à une base de données réelle lors de l'exécution de l'application. Vous pouvez aussi définir la propriété ConnectionName lors de la conception. Le menu déroulant de la propriété ConnectionName montre toutes les connexions de base de données listées dans l'explorateur de données. Définissez la propriété LoginPrompt du TSQLConnection sur false, de façon à ne pas être invité à spécifier un mot de passe à chaque fois que vous vous connectez à une base de données.

Ajoutez un composant TSQLDataSet, qui représente les données récupérées au moyen de dbExpress. Connectez ce composant au composant TSQLConnection en définissant la propriété SQLConnection de l'ensemble de données sur "SQLConnection1", à l'aide du menu déroulant de la propriété. Définissez DbxCommandType sur "Dbx.SQL", puisque l'application utilise des commandes SQL pour obtenir les données de la base de données.

Déposez maintenant un composant TDataSetProvider sur la fiche. Ceci fournit les données d'un ensemble de données et résout les mises à jour sur cet ensemble de données. L'ensemble TSQLDataSet de dbExpress est normalement un ensemble de données unidirectionnel. Un fournisseur, tel que TDataSetProvider, vous permet de naviguer librement au sein d'une base de données et de la mettre à jour. Définissez la propriété DataSet du TDataSetProvider sur "SQLDataSet1" pour connecter le fournisseur au TSQLDataSet.

Placez un TClientDataSet sur la fiche pour implémenter un ensemble de données indépendant de la base de données. Définissez la propriété ProviderName du TClientDataSet sur "DataSetProvider1", afin que le TClientDataSet soit connecté au TDataSetProvider.

Enfin, placez un TDataSource sur la fiche. Une source de données fournit une interface entre un composant ensemble de données et des contrôles orientés données, tels que le TDBGrid utilisé dans cet exemple. Définissez la propriété DataSet du TDataSource sur "ClientDataSet1" à l'aide du menu déroulant de la propriété.

Pour terminer les connexions entre les composants, connectez les composants visuels orientés données à la source de données :

  • Définissez la propriété DataSource du TDBNavigator sur "DataSource1".
  • Définissez la propriété DataSource du TDBGrid sur "DataSource1".

Enregistrez de nouveau le fichier.

Maintenant que les composants sont en place, nous allons écrire le code de l'application, en utilisant la bibliothèque VCL complète de classes de composant. Ce tutoriel décrit le code pour Delphi et C++.

Précédent

Connexion à une base de données

Suivant

Ecrire du code pour initialiser l'application