Foros del Web » Programación para mayores de 30 ;) » .NET »

Insertar datos en mas de una columna

Estas en el tema de Insertar datos en mas de una columna en el foro de .NET en Foros del Web. Hola. Desde ya muchas Gracias. Mi pregunta es la siguiente. Necesito ingresar datos en dos tablas al mismo tiempo, al mejor estilo Cabecera factura y ...
  #1 (permalink)  
Antiguo 26/04/2011, 20:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 4
Antigüedad: 17 años, 2 meses
Puntos: 0
Pregunta Insertar datos en mas de una columna

Hola.
Desde ya muchas Gracias.
Mi pregunta es la siguiente.
Necesito ingresar datos en dos tablas al mismo tiempo, al mejor estilo Cabecera factura y detalle Factura sabiendo que solo se cargan los datos en ambas bases si ninguna de las dos da error.
Estoy intentando hacerlo con dos sentencias distintas. Deberia hacerlo con una sola ?
Espero ser claro con la pregunta.

Gracias Andrés.
  #2 (permalink)  
Antiguo 27/04/2011, 07:28
 
Fecha de Ingreso: mayo-2008
Mensajes: 40
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Insertar datos en mas de una columna

Hola.

Hasta donde mis conocimientos llegan, lo que pides es imposible... hacer un insert a dos tablas al mismo tiempo. Eso si o si se debe hacer en dos sentencias distintas.

No obstante, en los servidores de bases de datos hay un concepto llamado "transacciones atómicas", el cual en pocas palabras es: o hace todo o hace nada.

En SQL Server por ejemplo tendrias algo similar a esto.

begin tran

insert into [tabla] (campos) values(campos)
if @@err<>0 begin
rollback tran
end else begin
commit tran
end

Claro esta que si tienes varias sentencias (insert, update, etc), deberias rescatar en una variable el numero del error (si es 0 no hay error), puesto que a la instruccion siguiente (select, set, etc), el error SQL lo resetea a 0.

No pretendo explayarme más... hay mucha documentación en internet sobre como hacer esto... solo quiero dar una aproximación a lo que debes llegar.

Saludos!

Etiquetas: detalle, factura
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:45.