Vous êtes sur la page 1sur 2

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 composan
t TacADOMetadataProvider. Ce dernier composant dispose d'une propriété "Connecti
on". 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 r
enseigneras le nom du composant TacADOMetadataProvider.
Voir dans le source (unité acQBBase.pas) la propriété:
Code :
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 :
Citation:
Envoyé par QueryBuilder
- TacBDEMetadataProvider à lier avec un Tdatabase (BDE)
- TacQBdbExMataDataProvider à lier avec un TSQLDataSet (Dbexpress)
- TacQIBBexMatadataProvider à lier avec un TIBDatabase. (Interbase)
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 composan
t TacMSSQLSyntaxProvider. Te te rends ensuite dans l'inspecteur d'objet pour le
composant TacQueryBuilder et tu recherches la propriété SyntaxProvider que tu re
lies au composant TacMSSQLSyntaxProvider.
Tu peux remarquer qu'il existe de nombreux fournisseurs de syntaxe dans cette su
ite de composants.
Voir dans le source (unité acQBBase.pas) la propriété:
Code :
TacQueryBuilder = class(TWinControl, IacSyntaxProviderPropsChanged)
...
published
...
property SyntaxProvider: TacBaseSyntaxProvider
read fSyntaxProvider write SetSyntaxProvider;
Tu peux maintenant, de façon optionnelle, placer un composant TacSQLBuilderPlai
nText sur ta TForm afin de récupérer le script SQL de ta requête en cours de con
struction. 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 TacSQLBu
ilderPlainText.
par exemple si ta Tform dispose d'un composant TMemo:
Code :
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 p
ro.
Pour finir, je te conseille d'ajouter une fonction qui permet de faire du revers
e ingeniering, c'est à dire reconstruire visuellement ta requête à partir d'un s
cript SQL.

Code :
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