[Lazarus-es] zeos-firebird: ejemplo transacciones
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Vie Mayo 14 20:36:08 CEST 2010
José Mejuto escribió:
> 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.
>
>
Hola José..
en un principio, más o menos tenía esa estructura.. luego agrupé todas
las sentencias en un procedimiento y ahí fue el lío.
Dentro de ese procedimiento, las sentencias no están dentro del
try/except.. están unas a continuación de otras.
Quizás, esa no es la forma más correcta de hacerlo...
Según tu ejemplo, entonces si agrupo todo sería algo así.??
try
grabar();
connection.commit
except
connection.rollback;
function grabar(): boolean
try
SQL.Execute; //Lo que sea, insert, sp, delete...
except
result:= false;
Exit;
end;
try
SQL.Execute;
except
result:= false;
Exit;
end;
result:= true;
More information about the Lazarus-es
mailing list