Lo primero que hay que hacer es bajarse la libreria de donde indica guillotmarc, yo he bajado la ultima version dbxFirebird.4.1.v26.zip.
Tras descomprimirla necesitamos los ficheros dbxfb4d14.dll y dbxdrivers.ini.
Los copiamos al directorio de nuestra aplicacion junto el cliente firebird fbclient.dll (o gds32.dll, el que mas nos guste).
Despues editamos el fichero dbxdrivers.ini y eliminamos las lineas "database" y "password" (o las dejamos) y cambiamos la lineas "libraryname" y "vendorlib" para quitarles el path que trae por defecto o le ponemos el nuestro, yo prefiero quitarselo y asi busca las dll en el directorio de nuestra aplicacion.
El fichero dbxdrivers.ini quedara asi.
Código:
[Installed Drivers]
FirebirdConnection=1
[FirebirdConnection]
;DriverUnit=DBXInterBase
;DriverPackageLoader=TDBXDynalinkDriverLoader,DbxCommonDriver120.bpl
;DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=12.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
;MetaDataPackageLoader=TDBXInterbaseMetaDataCommandFactory,DbxInterBaseDriver120.bpl
;MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxInterBaseDriver,Version=12.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
GetDriverFunc=getSQLDriverFIREBIRD
LibraryName=dbxfb4d14.dll
VendorLib=fbclient.dll
BlobSize=-1
CommitRetain=False
ErrorResourceFile=Firebird.log
LocaleCode=0000
Password=masterkey
RoleName=RoleName
ServerCharSet=
SQLDialect=3
Interbase TransIsolation=ReadCommited
WaitOnLocks=True
Trim Char=False
A continuacion en nuestro codigo hacemos los siguiente:
En la clausula uses añadimos "SqlExpr, WideStrings, DB, DBXDynalink, FMTBcd;"
En la clausula public definimos el conector asi lo podemos usar en toda la aplicacion
SQLConnection: TSQLConnection;
Ya podemos escribir el codigo de apertura y uso
Yo prefiero darle algunos parametros como usuario, password, database, etc.
Código Delphi
[-]
function TFormBBDD.AbreDataBase(): boolean;
var
tIni, tFin: integer;
begin
Result := False;
SQLConnection := TSQLConnection.Create(Self);
SQLConnection.DriverName := 'FirebirdConnection';
SQLConnection.SQLHourGlass := True;
SQLConnection.LoginPrompt := False;
SQLConnection.Params.Add('ServerCharSet=WIN1252');
SQLConnection.Params.Add('User_Name=SYSDBA');
SQLConnection.Params.Add('Password=masterkey');
SQLConnection.Params.Add('Database=servidor:d:\datos\base.fdb');
tIni := GetTickCount();
try
SQLConnection.Open;
tFin := GetTickCount();
if SQLConnection.Connected then
begin
Result := True;
Application.MessageBox('-> Conectado en ' + IntToStr((tFin - tIni) div 1000) + ' seg.', 'OK'); end;
except
tFin := GetTickCount();
SQLConnection.Free;
Application.MessageBox(PChar('-> No conectado en ' + IntToStr((tFin - tIni) div 1000) + ' seg.' + #10 +
'consulte con el servicio técnico'), 'Error', MB_ICONERROR);
end;
end;