Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Conexión a Firebird por servicio mediante TadoConnection (https://www.clubdelphi.com/foros/showthread.php?t=97646)

victor03 26-08-2025 14:35:49

Conexión a Firebird por servicio mediante TadoConnection
 
tengo un service application de delphi que intenta conectarse a una base de datos firebird a traves de un TADOConnection, para ello tengo creado un ODBC de 32 bits desde la pestaña DSN del usuario pero asi me da error diciendo que el ODBC no funciona ([Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado)

cuando creo el odbc desde la pestaña DSN DE SISTEMA LOCAL detecta y a partir de ahí comienza a funcionar.

¿Es posible conectarse usando las dns del usuario?

Casimiro Noteví 26-08-2025 20:04:24

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).


La franja horaria es GMT +2. Ahora son las 06:30:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi