Bonjour,
Tu dois dans un tout premier temps définir ta façon d'accéder à ta base de données. Par exemple, si tu désires accéder à ta base via
ADO, tu dois alors déposer sur ta
TForm un composant
TADOConnexion. Dès lors, tu pourras placer un composant
TacADOMetadataProvider. Ce dernier composant dispose d'une propriété "
Connection". Via l'inspecteur d'objet, tu lies cette propriété au
TADOConnexion.
Place ensuite un composant visuel
TacQueryBuilder sur ta
TForm. Toujours dans l'inspecteur d'objet, repère alors la propriété "
MetadataProvider" à laquelle tu renseigneras le nom du composant
TacADOMetadataProvider.
Voir dans le source (unité acQBBase.pas) la propriété:
1 2 3 4 5 6 7
|
TacQueryBuilder = class(TWinControl, IacSyntaxProviderPropsChanged)
...
published
...
property MetadataProvider: TacBaseMetadataProvider
read fMetadataProvider write SetMetadataProvider; |
Tout cela aura pour effet de lier ton
TacQueryBuilder à ta base de données.
Selon le type de connexion envisagé avec ton SGBD favori :
Pour compléter la mise en route du composant
TacQueryBuilder, il faudra ensuite choisir un fournisseur de syntaxe.
Par exemple, si tu te connectes à SQLServer, tu déposes sur ta fiche un composant
TacMSSQLSyntaxProvider. Te te rends ensuite dans l'inspecteur d'objet pour le composant
TacQueryBuilder et tu recherches la propriété
SyntaxProvider que tu relies au composant
TacMSSQLSyntaxProvider.
Tu peux remarquer qu'il existe de nombreux fournisseurs de syntaxe dans cette suite de composants.
Voir dans le source (unité acQBBase.pas) la propriété:
1 2 3 4 5 6 7
|
TacQueryBuilder = class(TWinControl, IacSyntaxProviderPropsChanged)
...
published
...
property SyntaxProvider: TacBaseSyntaxProvider
read fSyntaxProvider write SetSyntaxProvider; |
Tu peux maintenant, de façon optionnelle, placer un composant
TacSQLBuilderPlainText sur ta
TForm afin de récupérer le script SQL de ta requête en cours de construction. Dès que tu places ce composant tu vas dans l'inspecteur d'objet puis tu recherches la propriété
QueryBuilder que tu lies à ton
TacQueryBuilder.
Ensuite il ne te reste qu'à coder l'événement
OnSQLUpdated du composant
TacSQLBuilderPlainText.
par exemple si ta
Tform dispose d'un composant
TMemo:
1 2 3 4 5 6 7 8 9 10 11
|
procedure TForm1.acSQLBuilderPlainTextSQLUpdated(
Sender: TObject);
begin
memo1.Lines.BeginUpdate
try
memo1.Text := acSQLBuilderPlainText1.SQL;
finally
memo1.Lines.EndUpdate
end;
end; |
Je te conseille d'utiliser non pas un
TMemo, mais plutot un composant
Synedit. Ce composant te permet de mettre en place la
coloration syntaxique ainsi que la fonction de
complétion de texte. Cela te donnera un éditeur de script SQL très pro.
Pour finir, je te conseille d'ajouter une fonction qui permet de faire du reverse ingeniering, c'est à dire reconstruire visuellement ta requête à partir d'un script SQL.
1 2 3 4 5 6 7 8 9 10
|
procedure TForm1.reverse(Sender: TObject);
begin
acQueryBuilder1.BeginUpdate;
try
acQueryBuilder1.SQL := SynEdit1.Text; //ou Memo1.Text
finally
acQueryBuilder1.EndUpdate;
end;
end; |
En espérant te permettre de démarrer avec la suite de composants
QueryBuilder.
Cordialement
Partager