problema insert-select en access

02/03/2006 - 20:19 por Allan | Informe spam
hola, he aqui mi problema: inserto el producto compuesto en la base de
datos.. luego inmediatamente hago un select de todos esos productos
compuestos de forma descendente para que me traiga en el primer recordset el
rs de lo que acabo de insertar.. el problema es que selecciona todo pero aun
no ha insertado el rs que recien hice y no lo toma.. me trae el ultimo pero
anterior a la insercion reciente. pongo el codigo a ver si me pueden ayudar o
darme una idea:

if request.form("Agregar") = "Agregar" then

set insertar_producto = Server.CreateObject("ADODB.Command")
insertar_producto.ActiveConnection = MM_db_STRING
insertar_producto.CommandText = "INSERT INTO producto_compuesto
(producto_compuesto, descripcion_corta, descripcion_larga,
id_catalogo_funaca) VALUES ('" & request.Form("producto_compuesto") & "','"
& request.Form("descripcion_corta") & "', '" &
request.Form("descripcion_larga") & "', " &
request.Form("id_catalogo_funaca") & ") "
insertar_producto.CommandType = 1
insertar_producto.CommandTimeout = 0
insertar_producto.Prepared = true
insertar_producto.Execute()

Dim procom
Dim procom_numRows

Set procom = Server.CreateObject("ADODB.Recordset")
procom.ActiveConnection = MM_db_STRING
procom.Source = "SELECT id_producto_compuesto FROM producto_compuesto ORDER
BY id_producto_compuesto DESC"
procom.CursorType = 0
procom.CursorLocation = 2
procom.LockType = 1
procom.Open()

'procom_numRows = 0
'while not procom.eof
'response.Write(procom("id_producto_compuesto"))
'procom.movenext
'wend
'procom.movefirst

for i = 1 to request.Form("hidden")
response.Write("<br>hola")
response.Write(procom("id_producto_compuesto"))
if not cstr(request.form("productoc_"& i)) = cstr("") then
set inspc = Server.CreateObject("ADODB.Command")
inspc.ActiveConnection = MM_db_STRING
inspc.CommandText = "INSERT INTO producto_producto_compuesto (id_producto,
id_producto_compuesto, cantidad) VALUES (" & request.form("producto_"& i) &
", " & procom("id_producto_compuesto") & ", " & request.form("productoc_"& i)
& ") "
inspc.CommandType = 1
inspc.CommandTimeout = 0
inspc.Prepared = true
inspc.Execute()
end if
next


procom.Close()
Set procom = Nothing

'Response.Redirect("producto_compuesto.asp")
end if

espero que entiendan. gracias. saludos
 

Leer las respuestas

#1 Nano
03/03/2006 - 15:54 | Informe spam
prueba luego de hacer el insert, cerrar la conexion y abrirla para hacer el
select
a ver que pasa

es que ASP es tan rapido vio que no le das tiempo JA!

"Allan" escribió en el mensaje
news:
hola, he aqui mi problema: inserto el producto compuesto en la base de
datos.. luego inmediatamente hago un select de todos esos productos
compuestos de forma descendente para que me traiga en el primer recordset
el
rs de lo que acabo de insertar.. el problema es que selecciona todo pero
aun
no ha insertado el rs que recien hice y no lo toma.. me trae el ultimo
pero
anterior a la insercion reciente. pongo el codigo a ver si me pueden
ayudar o
darme una idea:

if request.form("Agregar") = "Agregar" then

set insertar_producto = Server.CreateObject("ADODB.Command")
insertar_producto.ActiveConnection = MM_db_STRING
insertar_producto.CommandText = "INSERT INTO producto_compuesto
(producto_compuesto, descripcion_corta, descripcion_larga,
id_catalogo_funaca) VALUES ('" & request.Form("producto_compuesto") &
"','"
& request.Form("descripcion_corta") & "', '" &
request.Form("descripcion_larga") & "', " &
request.Form("id_catalogo_funaca") & ") "
insertar_producto.CommandType = 1
insertar_producto.CommandTimeout = 0
insertar_producto.Prepared = true
insertar_producto.Execute()

Dim procom
Dim procom_numRows

Set procom = Server.CreateObject("ADODB.Recordset")
procom.ActiveConnection = MM_db_STRING
procom.Source = "SELECT id_producto_compuesto FROM producto_compuesto
ORDER
BY id_producto_compuesto DESC"
procom.CursorType = 0
procom.CursorLocation = 2
procom.LockType = 1
procom.Open()

'procom_numRows = 0
'while not procom.eof
'response.Write(procom("id_producto_compuesto"))
'procom.movenext
'wend
'procom.movefirst

for i = 1 to request.Form("hidden")
response.Write("<br>hola")
response.Write(procom("id_producto_compuesto"))
if not cstr(request.form("productoc_"& i)) = cstr("") then
set inspc = Server.CreateObject("ADODB.Command")
inspc.ActiveConnection = MM_db_STRING
inspc.CommandText = "INSERT INTO producto_producto_compuesto (id_producto,
id_producto_compuesto, cantidad) VALUES (" & request.form("producto_"& i)
&
", " & procom("id_producto_compuesto") & ", " & request.form("productoc_"&
i)
& ") "
inspc.CommandType = 1
inspc.CommandTimeout = 0
inspc.Prepared = true
inspc.Execute()
end if
next


procom.Close()
Set procom = Nothing

'Response.Redirect("producto_compuesto.asp")
end if

espero que entiendan. gracias. saludos

Preguntas similares