Lo más recomendable en Delphi con Firebird no es usar ADO+ODBC, sino los
componentes nativos IBX, que conectan directamente sin pasar por ODBC.
Así te evitas problemas con los DSN de usuario/sistema.
Ejemplo básico con
TIBDatabase y
TIBTransaction (los tienes en la paleta
InterBase en Delphi):
Código Delphi
[-]procedure TForm1.FormCreate(Sender: TObject);
begin
IBDatabase1.DatabaseName := 'localhost:C:\BaseDatos\miBD.fdb';
IBDatabase1.Params.Clear;
IBDatabase1.Params.Add('user_name=SYSDBA');
IBDatabase1.Params.Add('password=masterkey');
IBDatabase1.LoginPrompt := False;
IBTransaction1.DefaultDatabase := IBDatabase1;
try
IBDatabase1.Connected := True;
ShowMessage('Conexión correcta');
except
on E: Exception do
ShowMessage('Error al conectar: ' + E.Message);
end;
end;
Con esto ya tienes conexión directa a Firebird sin DSN, sin ODBC y sin ADO.
En resumen:
Si quieres seguir con ADO/ODBC debe crear el DSN como
DSN de sistema.Si quieres algo más limpio, usar conexión nativa con
IBX o con
FireDAC/UniDAC (más modernos).