Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   RollBack Retaining (https://www.clubdelphi.com/foros/showthread.php?t=61667)

marcial 17-11-2008 20:43:08

RollBack Retaining
 
Hola a todos:
Trabajo con: D5, FibPlus e Firebird 2.1
Tengo infinidad de dudas sobre firebird y he leido muchos articulos que proponeis, pero a la hora de ponerlos en practica.....puaf. (soy torpe).
Mi duda ahora es la siguiente:
Tengo un DataSet Familias, un botón grabar y otro RollBack de la siguiente manera:
Botón Grabar:
Código Delphi [-]
         SQL := 'UPDATE or INSERT INTO FAMILIAS (CODIGO, DESCRIPCION) VALUES (:Parametro1,:Parametro2)';
         if pFIBTransaction1.InTransaction then pFIBTransaction1.Commit;
         pFIBTransaction1.StartTransaction;
         FAMILIAS.InsertSQL.Clear;
         FAMILIAS.SQLs.InsertSQL.Add(SQL);
         FAMILIAS.QInsert.ParamByName('Parametro1').AsString := Edit3.Text;
         FAMILIAS.QInsert.ParamByName('Parametro2').AsString := Edit5.Text;
         FAMILIAS.QInsert.ExecQuery;
         pFIBTRansaction1.CommitRetaining;

Con eso graba bien.

Botón RollBack:
Código Delphi [-]
pFIBTransaction1.RollBackRetaining;

La Transacción es: ReadCommited
write
nowait
rec_version
read_committed

Pues bien, yo modifico un dato y le doy a grabar y lo graba bien, pero inmediatamente despues le doy al botón RollBack y no me hace nada, es decir, no vuelve atras el valor que tenia el DataSet antes de dar al ComminRetaining.

Podríais ayudarme?

Muchas gracias a todos
Marcial

eduarcol 17-11-2008 20:46:59

es que a lo que le das Commit el graba los cambios, el rollback funciona cuando tienes la transaccion activa, siempre que no la hayas cerrado, con un commit o con otro rollback

rastafarey 18-11-2008 21:02:29

Resp
 
Eso del commit retaining y el roolback retaining se ha discutido muchas veces. pero antes de usarlo por favor lean los pro y los contra no lo usen a la ligera.


La franja horaria es GMT +2. Ahora son las 05:41:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi