[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