Código:
<%
Set con = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
' connectionstring a la bd de oracle (que soporta transacciones
' a traves de ODBC)
con.open "cadenadeconexion"
' Para el archivo
Set ofiles = Server.CreateObject("Scripting.FileSystemObject")
set ofile = ofiles.getFile("archivoaabrir.cvs")
Set ts = ofile.OpenAsTextStream(ofile, 1)
on error resume next
Do while not ts.AtEndOfStream
con.BeginTrans
arrFields = split(ts.ReadLine,";")
if isArray(arrFields) then
' Suponemos que los registros vienen en el orden requerido
con.execute("INSERT INTO TABLA1 VALUES ('','" & arrFields(0) & "','" & arrFields(1) & "')"
if con.errors.count <> 0 then
con.rollback
exit do
end if
' No se cual es la funcion equivalente en Oracle
set rs = con.execute("SELECT LASTINSERTID() AS Y")
if not rs.EOF then
con.execute("INSERT INTO TABLE2 VALUES (" & rs("Y") & ",'" & arrFields(2) & "')")
end if
set rs = nothing
if con.errors.count <> 0 then
con.rollback
exit do
end if
end if
con.commitTrans
loop
err.clear()
on error goto 0
ts.close
set ofile = nothing
set ofiles = nothing
set rs = nothing
set con = nothing
%>
Poderoso ASP en operaciones transaccionales
No he usado ObjectContext aqui pues no se requiere grandes transacciones. Si deseas saber mas sobre este magnifico objeto ASP y su relacion con el MTS del IIS mira esta página:
http://www.hospedajeydominios.com/ma...ina-asp12.html
Es una buena forma de comenzar a conocerlo y su uso puede implicar a varias BDs, Tablas, Updates y Inserts. O sea, a TODA una página web ASP. Es mucho mas efectivo que las transacciones del objeto Connection y más segura ya que implica al IIS en la transaccion.
Un saludo