Hola, tengo un problema al insertar en SQL Server,
teniendo como llave foranea, la llave de un registro, que
no he insertado aun, o sea, los 2 registros deben
insertarse al mismo tiempo, relacionados por medio de una
llave.
Tengo una factura, y los datos generales de esa factura
los necesito guardar en la BD, solamente hasta que se
hayan especificado los detalles (Cantidad, Concepto y
Monto) de tal factura, estos detalles pueden ser varios,
el encabezado de la factura, es solo uno, es mas o menos
asi:
*********************Encabezado***********************
Factura No:_________ Mes:____________________
Proveedor:__________ Proyecto:________________
**********************Detalle**********************
CANTIDAD MONTO CONCEPTO
1 $ 100.25 Camisetas
3 $ 250.00 DVD's
12 $ 95.51 Gorras
Esto lo tengo que hacer, tomando en cuenta la
concurrencia de las transacciones (es aplicación web,
pueden haber cientos de personas haciendo lo mismo al
mismo instante)
El encabezado va en una tabla, donde la llave (PK) es
autoincrement, y los detalles llevan otra llave (PK)
autoincrement (además de la llave del encabezado, para
hacer la relacion).
La duda que tengo es, como mantener lo datos del
encabezado temporalmente, hasta darle la opción al
usuario de insertar los detalles, y cuando haya hecho
esto, insertar todo junto, pasando la llave del
encabezado, al detalle, pues al ser autoincrement, me doy
cuenta del valor de la llave hasta que el SQL haga el
insert (o me equivoco?).
Me imagino que no esta muy bien explicado, si logra
entenderme, por favor le agradecería que me ayudara un
poco. He pensado en hacer un DataSet, que mantenga los
datos del encabezado, y cuando el usuario ya haya
declarado los detalles, meterlos en otro dataset, e
insertar todo junto, aunque me queda la duda, de como
pasarle la llave primaria del encabezado, al detalle.
Saludos, y gracias
Leer las respuestas