20/03/2007, 04:15
|
| | Fecha de Ingreso: septiembre-2006
Mensajes: 54
Antigüedad: 18 años, 2 meses Puntos: 0 | |
Re: Averiguar el ID del último registro insertado en una tabla para... Lo siento Zoe, no me ha funcionado En este mensaje hay cosas que se explican y que no vienen a cuento. esto es porque lo he copiado de un mensaje que puse en el foro de ASP
Código:
Aqui CONEXIÓN con la BD.
Esto no me preocupa ya que he comprobado que funciona
A continuación muestro como leo del archivo "mi-archivo.csv":
Código:
Dim Conn,sql,sql1,sql2
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open(mi-conexión)
set RS=Server.CreateObject("ADODB.Recordset")
Set ofiles = Server.CreateObject("Scripting.FileSystemObject")
set ofile = ofiles.getFile(Server.MapPath("mi-archivo.csv"))
Set ts = ofile.OpenAsTextStream(1, -2)*Nota *Nota: Cita: 'Aqui, en ts=... he cambiado lo que tu pusiste, ya que he leido lo siguiente:
Método OpenAsTextStream
Abre un archivo especificado y devuelve un objeto TextStream que se puede utilizar para leer, escribir o agregar en el archivo.
objeto.OpenAsTextStream([modoES, [formato]])
Valores
El argumento modoES puede tener cualquiera de los siguientes valores:
Constante Valor Descripción
ForReading 1 Abrir un archivo sólo para lectura. No puede escribir en este archivo.
ForWriting 2 Abrir un archivo para escritura. Si existe un archivo con el mismo nombre, se sobreescribe su contenido anterior.
ForAppending 8 Abrir un archivo y escribir al final del archivo.
El argumento format puede tener alguno de los siguientes valores:
Constante Valor Descripción
TristateUseDefault -2 Abre el archivo utilizando el valor predeterminado del sistema.
TristateTrue -1 Abre el archivo como Unicode.
TristateFalse 0 Abre el archivo como ASCII. Continuamos despues del inciso
Código:
on error resume next
Do while not ts.AtEndOfStream
Conn.BeginTrans
sql="select id_r.nextval id_r from restaurantes"
Set RS = Conn.Execute(sql)
id_r=RS("id_r")
arrFields = split(ts.ReadLine,",")
if isArray(arrFields) then
sql1 = "INSERT INTO MI-TABLA (ID_R,NOMBRE-RESTARANTE, SITUACION, CLASE, CANTIDAD, IMAGEN, IMAGEN2, IMAGEN3, PAGAN, PAGEXTRA, MICROSITE) VALUES ('"&id_r&"','" & arrFields(0) & "','" & arrFields(1) & "','" & arrFields(2) & "','" & arrFields(3) & "','" & arrFields(4) & "','" & arrFields(5) & "','" & arrFields(6) & "','" & arrFields(7) & "','" & arrFields(8) & "','" & arrFields(9) & "')"
con.execute(sql1)
if Conn.errors.count <> 0 then
Conn.rollback
exit do
end if
' No se cual es la funcion equivalente en Oracle
'yo creo que está aquí el problema, pero no sé como se puede recoger el ID 'del primer INSERT para usarlo en el segundo
Aquí he hecho lo que has dicho, he aprovecado el id que he conseguido con nextval para la primera, pero no me ha funcionado
sql2 = "INSERT INTO DESC_RES (ID_R,IDIOMA,DESCRIPCION) VALUES ('"&id_r&"','" & arrFields(11) & "','" & arrFields(12) & "')"
Conn.execute(sql2)
set RS = nothing
if Conn.errors.count <> 0 then
Conn.rollback
exit do
end if
end if
Conn.commitTrans
loop
err.clear()
on error goto 0
ts.close
set ofile = nothing
set ofiles = nothing
'set Rs = nothing
'set Conn = nothing
response.write("query restaurante: "&sql1)
response.write("<BR>Query Descripció: "&sql2)
'rs.close()
'Conn.close()
%>
Aquí muestro el Archivo del que leo los datos:
' Cita: 402667','Mi Restaurante j', '122', '94', '7', 'abrasas.gif', 'abrasas.gif','abrasas.gif', '', '', '','1','<b>Nombre:</b> Mi Resturante f<br><b>Dirección:</b> Dirección de Mi Restaurante f'
'402668','Mi Restaurante k', '122', '94', '7', 'abrasas.gif', 'abrasas.gif','abrasas.gif', '', '', '','1','<b>Nombre:</b> Mi Resturante g<br><b>Dirección:</b> Dirección de Mi Restaurante g'
'402669','Mi Restaurante l', '122', '94', '7', 'abrasas.gif', 'abrasas.gif','abrasas.gif', '', '', '','1','<b>Nombre:</b> Mi Resturante h<br><b>Dirección:</b> Dirección de Mi Restaurante h'
'402670','Mi Restaurante m', '122', '94', '7', 'abrasas.gif', 'abrasas.gif','abrasas.gif', '', '', '','1','<b>Nombre:</b> Mi Resturante i<br><b>Dirección:</b> Dirección de Mi Restaurante i' Lo del tigger lo he mirado un poco pero no entiendo bien como va. En este código hay partes que están bien pero estoy seguro que en algún lado estoy metiendo la pata hasta el fondo
Ya me direís algo
Un saludo |