¡Hola amigos!
Utilizando los antiguos componentes FIBPlus, conecto con una BD remota (Firebird 3.0) con el código siguiente:
Código Delphi
[-]Base.DBName := 'xxx.xxx.xxx.xxx:alias_bd';
Base.LibraryName := camino_aplicacion_local + 'fbclient.dll';
with Base do
begin
DBParams.Clear;
DBParams.Add('lc_ctype=ISO8859_1');
DBParams.Add('user_name=SYSDBA');
DBParams.Add('password=' + clave;
DBParams.Add('sql_role_name=' + rol;
Connected := True;
end;
La conexión se establece perfectamente, se pueden hacer consultas, ejecutar procedimientos almacenados que devuelvan valores, vistas, etc. Todo menos modificar registros de la BD. Por ejemplo, esto no funciona:
Código Delphi
[-]Base.tra_General.Active := True;
Base.tra_General.StartTransaction;
Base.qry_General.ExecProc;
Base.tra_General.Commit;
Base.ra_General.Active := False;
Siendo el código SQL del componente qry_General (TpFIBQuery):
Código SQL
[-]update tbl_clientes
set nombre = nombre || ' algo'
where (cid_cliente = xxxx)
Esta tontada de código SQL es simplemente una prueba después de cansarme de ejecutar un procedimiento almacenado que debía crear un pedido y que no he conseguido hacer que funcione.
Alguna sugerencia. De todas formas, gracias.