[Lazarus-es] zeos-firebird: ejemplo transacciones
Ismael L. Donis García
ismael en citricos.co.cu
Jue Mayo 6 20:51:53 CEST 2010
Paola, lo primero que te recomiendo es que pases la lógica hacia la BD,
segundo puedes obtener el valor del generador desde el mismo procedimiento
que usas para incrementar el generador y guardarlo en una variable con la
cual trabajarías después.
Te pasó un código de ejemplo que yo uso para que tengas una idea.
SET TERM ^ ;
CREATE PROCEDURE P_NUM_REC (
VCH_ENTIDAD Varchar(7),
SIN_ALMACEN Smallint )
RETURNS (
INT_NREC Integer )
AS
BEGIN
/* Actualiza el número de la recepción */
select a.no_r from vtaconteo a where ((a.entidad = :vch_entidad) and
(a.almacen = :sin_almacen)) into :int_nrec;
update vtaconteo set no_r = no_r + 1 where ((vtaconteo.entidad =
:vch_entidad) and (vtaconteo.almacen = :sin_almacen));
suspend;
END^
SET TERM ; ^
Saludos
=========
|| ISMAEL ||
=========
----- Original Message -----
From: "Paola Bruccoleri" <pbruccoleri en adinet.com.uy>
To: "Lista Lazarus" <lazarus-es en lists.lazarus.freepascal.org>
Sent: Thursday, May 06, 2010 11:51 AM
Subject: [Lazarus-es] zeos-firebird: ejemplo transacciones
Hola..
alguien tiene algún ejemplo (usando zeos/firebird2) donde graba varios
registros en varias tablas (usando o no sp) y que queden en la misma
transacción?? quisiera ver cómo lo están resolviendo.
esto es lo que yo hago:
DBMain.fdb.AutoCommit:= false;
try
DBMain.qry.Close;
DBMain.qry.SQL.Text:= 'update numeros set boletas =
'+IntToStr(nComprob+1);
DBMain.qry.ExecSQL;
except
MessageDlg('Error', 'Hay error ', mtWarning, [mbOk], 0);
DBMain.fdb.Rollback;
end;
..... varias sentencias: inserts, updates.... todas entre try/except
DBMain.fdb.Commit;
DBMain.fdb.AutoCommit:= true;
Si uso un generador para incrementar el contador de comprobantes, se
supone que si todo el proceso de grabar está dentro de la misma
transacción, puedo seguir consultando por el valor del generador, que no
se me va a modificar, no?
chauuuuuuuuuu
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
More information about the Lazarus-es
mailing list