Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Una Transacción por cada Tabla???? (https://www.clubdelphi.com/foros/showthread.php?t=14607)

AGAG4 25-09-2004 01:11:18

Una Transacción por cada Tabla????
 
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

COmo quieras
 
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

oki
 
Cita:

Empezado por buitrago
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

oki
 
Cita:

Empezado por cybergerman
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


La franja horaria es GMT +2. Ahora son las 21:30:06.

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