PDA

Ver la Versión Completa : Maestro/Detalle


StartKill
30-03-2004, 17:36:28
Hola my friend's. :cool:

Toy con Dephi 7.0 Interbase 6.0.1, trabajo con componentes IBX.

Tengo una aplicacion donde uno de mis formularios es maestro detalle, como ya es de suponer el maestro tiene una clave primary y la tabla detalla tiene una llave foranea a al campo clave de la primera tabla. :p

Para ello utilizo dos IbQuery's con un solo IBtransacction, mi idea es aplicar un solo commit al transacction para mis dos tablas maestro detalle.

Pero veo el incoveniente de que para hacer un post a una fila de mi tabla detalle tiene que existir la fila en maestro.... :(

Pasos que he seguido:

Tabla Maestro
1.- Inserto un registro "insert"
2.- Ingreso los datos.
3.- Hago su respectivo "Post"
4.- Por ultimo su "Commit" linea que deseo evitar

Tabla Detalle
1.- Inserto un registro "insert"
2.- Ingreso los datos.
3.- Hago su respectivo "Post"
4.- Repito los pasos desde 1.- o continuo con el paso 5.-
5.- Por ultimo su "Commit"

Lo que necesito es añadir filas a la tabla detalle sin haber hecho un commit a la tabla maestro... esto quiere decir que cuando el usuario este conforme con sus datos ingresados tanto maestro y detalle presione el boton grabar y de esa forma de haria un solo commit. :D

Bueno amigos espero haberme hecho comprender, alguna idea que tuvieran para esto. :)

Your friend.

StartKill
Lima-Perú

jachguate
30-03-2004, 17:58:28
Pues todo está bien...

No se si no entendí tu duda.. pero si es si el procedimiento es correcto, si lo es. Por otro lado, si podes incluir modificaciones a dos (y a muchas) tablas en una sola transacción, haciendo commit solo al final.

Hasta luego.

;)

__cadetill
30-03-2004, 18:05:21
A parte de lo comentado por Juan Antonio


Pero veo el incoveniente de que para hacer un post a una fila de mi tabla detalle tiene que existir la fila en maestro.... :(

Esto no es que sea un inconveniente, es algo lógico y normal, la diferencia está en que la transacción no tiene por qué haber finalizado antes de eintroducir los detalles (como apunta el compañero Juan Antonio)

Espero te sirva

guillotmarc
30-03-2004, 18:05:35
Hola.

¿ No funciona tal como lo planteas ?. Simplemente haz el Insert en la Tabla 1, junto a su Post, y no hagas aún el Commit. Vé añadiendo filas en la Tabla 2, y cuando decidas grabar los datos, haz el Commit de la transacción que comparten la Tabla 1 y la Tabla 2. ¿ Cual es el problema ? ¿ Que mensaje de error te da ?.

NOTA : ¿ Se nota que no he utilizado nunca los componentes IBX ?

Saludos.

guillotmarc
30-03-2004, 18:06:58
Vaya, me habéis adelantado.

StartKill
31-03-2004, 01:52:31
Hola,

Primero gracias por su interes, al leer sus repuestas me di cuenta que algo tenia que estar mal en mi codigo... humm, y asi fué. Segun sus cometarios lo detallado antes es correcto, "yo" no estaba aplicando como debia los pasos indicados ...,

Gracias, mil gracias.

Your Friend :cool:

StartKill
Lima-Perú