Hola duilioisola,
¿pero el commit o rollback quieres decir que lo ponga en el código delphi? Porque he hecho lo siguiente y sigue sin hacerme commit (en el procedure he puesto when EXCEPTION SUPERA_IMPORTE DO SUSPEND):
Código Delphi
[-]
sentencia := 'EXECUTE PROCEDURE PROCESA_VISITA (variables)';
try
Q1.Close;
Q1.SQL.Clear;
Q1.SQL.Add(sentencia);
Q1.Prepare;
Q1.ExecQuery; Q1.Transaction.CommitRetaining;
Q1.FreeHandle;
except
Q1.Transaction.CommitRetaining; Q1.FreeHandle;
raise;
end;
Cita:
Empezado por duilioisola
Prueba con
* when SQLCODE -803 do SUSPEND ;
* when EXCEPTION SUPERA_IMPORTE DO SUSPEND ;
Cada vez que un procedimiento encuentra un suspend, devuelve los valores que tenga en el RETURNS() y espera a que le pidan el siguiente.
Aunque no devuelvas nada, el SUSPEND hará que devuelva el control a tu programa y puedas hacer un commit o rollback, según te convenga.
|