Por favor,ayuda maestro-detalle

11/04/2005 - 11:15 por Alejandro | Informe spam
Hola a todos, tengo dos tablas relacionadas (maestro-
detalle). A la tabla de cabecera le asigno localmente en
mi aplicación un código temporal, que es el código que le
paso a la tabla detalle a la hora de insertar líneas de
detalle. El problema está en que a la hora de insertar la
fila de cabecera, ejecuto un trigger que cambia ese
código temporal por el código real (extraído de una tabla
con numeradores) y no sé como sustituir el valor de las
líneas de detalle a la hora de insertarlas en la base de
datos con el código real que he usado en la tabla
cabecera.

Gracias!
 

Leer las respuestas

#1 Alejandro Mesa
11/04/2005 - 14:08 | Informe spam
Alejandro,

No creo que eso sea de mucha ayuda (el usar valores temporales para la clave
primaria de la tabla cabecera), de todas maneras (si estas usando DRI) debes
insertar primero en la tabla cabecera y despues en la de detalle, asi que
cuando se ejecuta el trigger todavia no existen filas asociadas en la tabla
detalle.

Un patron que se usa bastante para estos casos es que desde la aplicacion
cliente se inicie un atransaccion, se inserte la fila en la tabla de
cabecera, se seleccione el valor de la clave primaria que se asigno y se le
pase al procedimiento que inserta en la tabla detalle, si todo sale bien se
hace un commit de la trasaccion de lo contrario se hace un rollback. Otra
posibilidad es que mandes como parametro un documento XML con la fila de
cabecera y sus filas de detalle, de esta forma puedes iniciar la transaccion
en el server y no en la aplicacion cliente.


AMB

"Alejandro" wrote:

Hola a todos, tengo dos tablas relacionadas (maestro-
detalle). A la tabla de cabecera le asigno localmente en
mi aplicación un código temporal, que es el código que le
paso a la tabla detalle a la hora de insertar líneas de
detalle. El problema está en que a la hora de insertar la
fila de cabecera, ejecuto un trigger que cambia ese
código temporal por el código real (extraído de una tabla
con numeradores) y no sé como sustituir el valor de las
líneas de detalle a la hora de insertarlas en la base de
datos con el código real que he usado en la tabla
cabecera.

Gracias!

Preguntas similares