Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/10/2007, 02:04
tammander
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Insert en dos tablas simultaneamente.

Hace algun tiempo pusieron esta solución cuando se trabaja con MSSQL Server:

Sustituye esto:

Código:
<%
set inserta = Server.CreateObject("ADODB.Command")
inserta.ActiveConnection = MM_conxion_STRING
inserta.CommandText = "INSERT INTO CABECERA (vendedor, cliente_id, user_id, fecha) VALUES ('" + Replace(titulo, "", "''") + "'," + Replace(client, "'", "''") + "," + Replace(usuario, "'", "''") + ", Replace(fecha, "'", "''") + "' ) "
inserta.CommandType = 1
inserta.CommandTimeout = 1
inserta.Prepared = true
inserta.Execute()
'inserta.Close
%>

<%
set consul = Server.CreateObject("ADODB.Recordset")
consul .ActiveConnection = MM_bolon_STRING
consul .Source = "SELECT top 1 caso_id FROM CABECERA Order by (cabecera_id) DESC"
consul .CursorType = 0
consul .CursorLocation = 2
consul .LockType = 3
consul .Open()
consulid=(consul .Fields.Item("cabecera_id").Value+1 )
%>
por esto

Código:
set inserta = Server.CreateObject("ADODB.Command")
set consul = Server.CreateObject("ADODB.Recordset")
inserta.ActiveConnection = MM_conxion_STRING
 strQuery ="INSERT INTO CABECERA (vendedor, cliente_id, user_id, fecha) VALUES ('" + Replace(titulo, "", "''") + "'," + Replace(client, "'", "''") + "," + Replace(usuario, "'", "''") + ", Replace(fecha, "'", "''") + "' ); SELECT @@IDENTITY AS 'Identity' FROM CABECERA"
inserta.CommandType = 1
inserta.CommandTimeout = 1
inserta.Prepared = true
set consul = inserta.Execute(strQuery).NextRecordset
consulid = consul("Identity")
A ver si te sirve. No estoy muy seguro si el método Execute del Command de ADO permite esta asignación.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -