Hola estimados, vengo a pedir su ayuda con un problema que tengo con IBX + Delphi Berlin, después de trabajar con Delphi 2007 con IBX sin problemas, usando la misma configuración en Delphi Berlin tengo el problema que para que se vean los datos modificados en otros equipos de la red tengo que cerrar la aplicación (cosa que tampoco me pasaba con MDO). Como dato tampoco IBExpert puede ver las modificaciones pero mi aplicación si ve las modificaciones de IBExpert.
Esta es la configuración de los componentes:
TIBDatabase:
Connected = True
DatabaseName = 'Server/3050:C:\firebird\Base.FDB'
Params.Strings = (
'user_name=SYSDBA'
'password=masterkey'
'lc_ctype=ISO8859_1')
LoginPrompt = False
DefaultTransaction = Transaction
ServerType = 'IBServer'
TIBTransaction:
Active = True
Params.Strings = (
'read_committed'
'rec_version'
'nowait')
AutoStopAction = saCommit
Este es un ejemplo de código usando un procedimiento almacenado (simplificado para mejorar lectura):
Código:
StoreProcedure.ParamByName('Parametro1').AsInteger := 1;
StoreProcedure.ExecProc;
nId := StoreProcedure.ParamByName('LASTID').AsInteger;
DM.Transaction.CommitRetaining;
Procedimiento almacenado (simplificado para mejorar lectura):
Código:
create or alter procedure GRABA_ENCAB (
Parametro1 integer
returns (
LASTID integer)
as
begin
INSERT INTO TABLA
(
campo1
)
VALUES
(
:Parametro1
)
returning IDTABLA
INTO :lastid;
end^
Otra prueba:
Código:
DM.Transaction.Active := False;
DM.Transaction.StartTransaction;
StoreProcedure.ParamByName('Parametro1').AsInteger := 1;
StoreProcedure.ExecProc;
nId := StoreProcedure.ParamByName('LASTID').AsInteger;
DM.Transaction.Commit;
Versiones de Software que ocupo:
- Embarcadero® Delphi 10.1 Berlin Version 24.0.25048.9432
- InterbaseExpress 19,19
- Firebird-2.5.2.26540_0_x64 en su instalación por defecto.
SO estaciones de trabajo donde se hacen pruebas:
- Windows 7
- Windows 8
- Windows XP
SO usado para servidores probados:
- Windows server 2012 R2
- Windows 7
De antemano muchas gracias.