PDA

Ver la Versión Completa : Una Transacción por cada Tabla????


AGAG4
25-09-2004, 01:11:18
Uso IBX 7.08, D7,FireBird 1.51
Tengo 10 Tablas que conforman 6 Catálogos y 2 Maestros Detalle, mi pregunta es, la manera correcta de manejar las Transacciones es teniendo un IbTransaction por cada Tabla ó bien tener solo un IbTransaction por todas????

y Cuando me recomiendan Iniciar la Transacción cuando se crea el DataModule que es al Iniciar mi aplicación ó bien antes de mandar a grabar los datos????

Que me recomiendan hacer????

Cualquier Comentario se los agradezco mucho.

buitrago
25-09-2004, 03:16:01
Si, las puedes hacer en grupos, segun su utilidad, por ejemplo, para los archivos nomencladores, yo solo uso una, y actualizazo todo cuando ha habido cambios y voy a facturar, para que todo este listo.

Nada, no hay reglas, a veces si, a veces no, sé que es un poco vago lo que te digo, pero es la pura verdaad, creo que no hay libros que te digan esto se hace asi o asao.

Saludos

Fer

AGAG4
25-09-2004, 03:32:43
Si, las puedes hacer en grupos, segun su utilidad, por ejemplo, para los archivos nomencladores, yo solo uso una, y actualizazo todo cuando ha habido cambios y voy a facturar, para que todo este listo.

Nada, no hay reglas, a veces si, a veces no, sé que es un poco vago lo que te digo, pero es la pura verdaad, creo que no hay libros que te digan esto se hace asi o asao.

Saludos

Fer
Muchas Gracias por sus respuestas.

cybergerman
27-09-2004, 15:12:53
Yo lo utilizo así:

if datamodule.ibtransaction.intransaction then
datamodule.ibtransaction.rollback;
datamodule.ibtransaction.starttransaction;
try
datamodule.query.sql.clear;
datamodule.query.sql.add('instruccion sql');
'mensaje de confirmación'
datamodule.query.execsql;
datamodule.query.commit;
except
datamodule.ibtransaction.roolback;
raise;
end;

Utilizo un módulo de Datos con el componente de Base da Datos y un solo componente de Transaccion.
En los otros módulos de datos tengo los otros componentes(querys,etc), pero estos módulos de datos utilizan el primero(el comentado en el primer párrafo).

AGAG4
27-09-2004, 21:21:35
Yo lo utilizo así:

if datamodule.ibtransaction.intransaction then
datamodule.ibtransaction.rollback;
datamodule.ibtransaction.starttransaction;
try
datamodule.query.sql.clear;
datamodule.query.sql.add('instruccion sql');
'mensaje de confirmación'
datamodule.query.execsql;
datamodule.query.commit;
except
datamodule.ibtransaction.roolback;
raise;
end;

Utilizo un módulo de Datos con el componente de Base da Datos y un solo componente de Transaccion.
En los otros módulos de datos tengo los otros componentes(querys,etc), pero estos módulos de datos utilizan el primero(el comentado en el primer párrafo).
Inicias Transacción cada vez que mandas a Actualizar ????

rochi
22-12-2004, 03:24:44
Hola, justo encontré un hilo con las dudas que tengo, aunque no me las responde totalmente :confused:
Bueno, mi aplicación es en Delphi 7 + Firebird 1.5.1 monousuario, utilizando los componentes IBX. Tengo claro la definición de una transacción, sin embargo como soy nueva en esto tengo dudas si estoy haciendo bien las cosas, por mas que lea aqui y allá hay cosas que salen de la experiencia, inclusive la ajena :p

En mi aplicación tengo un DModule que tiene la TIBDataBase y TIBtransaction, y por ahora esa txn, es usada por todos :rolleyes: . Las tablas que no son maestro (de una relación maestro/detalle) las manejo con el IBDataSet, y las búsquedas en las mismas con un TIBQuery. Por ejemplo buscar en el IBDataSEt un registro por alguno de sus campos (IBDataSet- > Socios, TQuery-> consultas sobre los socios).
El TIBDataSet y TIBQuery están en otro DataModule, que usa (Uses mediante) al que tiene la transacción. Ya que tanto el TIBDataSet como la TIBQuery usan la misma. No he tenido problemas, pero dada mi poca experiencia puede ser porque aun no he contemplado casos donde este enfoque me traiga dolores de cabeza. El Help de IBX dice que un Query debe tener sus propias transacciones. Pero es query no se si se refiere al TIBQuery o a qué, asumo que si.

Para las relaciones Maestro-Detalle, utilizo los ClientDataSet con nested dataset y queries. Todos con la misma txn, esto lo estoy probando aun.

Entonces, ¿cuales inconvenientes tiene este enfoque?, ¿en qué casos sería aplicable?. ¿En qué otros es mejor tener txns separadas de otras?

Bueno, solo eso, gracias

rochi