Extract DB structure, Firebird+FireDAC

 
This example shows how to extract a FireBird database structure via the FireDAC library.
 
 
procedure TForm1.btnExtractClick(Sender: TObject);
begin
  memLog.Clear();
  memResult.Clear();

  DBCConnection1.Connected := True;
  try
    DBStructure1.Clear();
    IBDBExtract1.ExtractDatabase();
    DBStructure1.Metadata.ExtractMetadata(memResult.Lines);
  finally
    DBCConnection1.Connected := False;
  end;
end;
 
procedure TForm1.DBCConnection1BeforeConnect(Sender: TObject);
begin
  FDPhysFBDriverLink1.VendorLib := edtClientLibrary.Text;

  FDConnection1.Params.Clear();
  FDConnection1.DriverName := 'FB';
  FDConnection1.Params.Add('Database=' + edtDatabaseName.Text);
  FDConnection1.Params.Add('User_Name=' + edtUser.Text);
  FDConnection1.Params.Add('Password=' + edtPassword.Text);

  DBStructure1.IBServerOptions.SQLServerVersion :=
    TIBSQLServerVersionType(cbSqlServerVersion.Items.Objects[cbSqlServerVersion.ItemIndex]);
end;

procedure TForm1.AddLogMessage(Sender: TObject; ErrText: string);
begin
  memLog.Lines.Add(ErrText);
  memLog.Perform(EM_SCROLLCARET, 0, 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  cbSqlServerVersion.Items.Clear();

  cbSqlServerVersion.Items.AddObject('Firebird 1.5', TObject(st_FireBird_15));
  cbSqlServerVersion.Items.AddObject('Firebird 2.0', TObject(st_FireBird_20));
  cbSqlServerVersion.Items.AddObject('Firebird 2.1', TObject(st_FireBird_21));
  cbSqlServerVersion.Items.AddObject('Firebird 2.5', TObject(st_FireBird_25));
  cbSqlServerVersion.Items.AddObject('Firebird 3.0', TObject(st_FireBird_30));

  cbSqlServerVersion.ItemIndex := cbSqlServerVersion.Items.Count - 1;
end;

Add Feedback