[Lazarus-es] zeos-firebird: ejemplo transacciones
José Mejuto
joshyfun en gmail.com
Vie Mayo 14 19:49:21 CEST 2010
Hello Paola,
Friday, May 14, 2010, 7:38:55 PM, you wrote:
>>> vTrans := DBMain.fdb.Intransaction;
>>> try
>>> if (not vTrans) then DBMain.fdb.StartTransaction;
>>> Graba;
>>> if (not vTrans) then DBMain.fdb.Commit;
>>> finally
>>> if (not vTrans) and DBMain.fdb.Intransaction then
>>>
PB> Hola José..
PB> cambié finally por except y ahora "aparentemente" está funcionando
PB> bien.. o sea, si hay error, no ejecuta ninguna sentencia sql.
PB> De todas maneras, seguiré provocando errores en otros lados a ver que
PB> pasa...
PB> muchas gracias a todos..
PB> chauuuuuuuuuuuu
No se como haceis el tema este, pero lo lógico sería:
[...]
try
SQL.Execute; //Lo que sea, insert, sp, delete...
except
SQL.RollBack;
Exit;
end;
try
SQL.Execute;
except
SQL.RollBack;
Exit;
end;
SQL.Commit;
[...]
Si todo está en una función, reemplazar los:
SQL.RollBack por false.
SQL.Commit por true.
--
Best regards,
José
More information about the Lazarus-es
mailing list