Quick Start Guide for the VCL Edition (Delphi & C++Builder)
Last modified:
1st way: Placing the Active Query Builder control on a form.
Follow the steps below to place a component on a form using Delphi IDE.
- Place the TacQueryBuilder component on the form.
- 
Place required metadata and syntax provider components on the form (read more about syntax and metadata providers). Define database connection for the metadata provider. 
- 
Link the components above to the TacQueryBuilder by setting MetadataProvider and SyntaxProvider properties. 
- Place the TacSQLBuilderPlainText component on the form to get SQL code generated by the Query Builder with formatting. Link it to the TacQueryBuilder component by setting its QueryBuilder property.
- 
Add the TMemo or any other text editing component (for example, TSynEdit) to a form. 
- 
Now you should establish a connection between the TacSQLBuilderPlainText and the TMemo components. 
 Enter the following code to OnExit event of TMemo component:acQueryBuilder1.SQL := Memo1.Text; Enter the following code to OnSQLUpdated event of TacSQLBuilder component: Memo1.Text := acSQLBuilderPlainText1.SQL; 
- Execute the following code to load metadata and activate Active Query Builder:
 acQueryBuilder1.RefreshMetadata; // syncronous loading; may take a long time in case of large database schema or acQueryBuilder1.RefreshMetadataAsync; // asyncronous loading; allows to work with the component almost instantly. // database schema tree will be filled after completion of the metadata loading process. 
- 
That's all! Now you can run your application.
 Don't forget to activate your database connection component.

2nd way: Creating a component programmatically.
The following sample illustrates the programmatic creation of needed objects to work with the component.
unit uActiveQueryBuilder;
uses 
  // ...
  acAST, acQBBase;
interface
type
  TForm1 = class(TForm)
    // ...
  private
    adoConnection: TADOConnection;
    acQueryBuilder: TacQueryBuilder;
    // specify the needed type of metadata provider according to your database connection
    acMetadataProvider: TacADOMetadataProvider;
    // specify the needed type of syntax provider for your database server
    acSyntaxProvider: TacMSAccessSyntaxProvider; 
    acPlainTextSQLBuilder: TacSQLBuilderPlainText;
    // ...
  end;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
  acQueryBuilder := TacQueryBuilder.Create(Self);
  acMetadataProvider := TacADOMetadataProvider.Create(Self);
  acSyntaxProvder := TacMSAccessSyntaxProvider(Self);
  adoConnection := TADOConnection.Create(Self);
  adoConnection.ConnectionString := 'Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Persist Security Info=False;';
  acMetadataProvider.Connection := adoConnection;
  
  acQueryBuilder.MetadataProvider := acMetadataProvider;
  acQueryBuilder.SyntaxProvider := acSyntaxProvider;
  acPlainTextSQLBuilder := TacSQLBuilderPlainText.Create(Self);
  acPlainTextSQLBuilder.QueryBuilder := acQueryBuilder;
  // get the needed metadata to fill the Database Schema Tree:
  acQueryBuilder.RefreshMetadata;
  // specify the initial SQL if needed:
  acQueryBuilder.SQL := 'SELECT * FROM Table1';
  // display the formatted SQL query to the user:
  ShowMessage(acPlainTextSQLBuilder.SQL);
end;