Foros del Web » Programando para Internet » ASP Clásico »

Update de varios registros da error...ayuda

Estas en el tema de Update de varios registros da error...ayuda en el foro de ASP Clásico en Foros del Web. Estoy tratando de actualizar secuencialmente varios registros de una tabla, el caso es que para mostrar los resultados o cuando inserto no tengo problemas pero ...
  #1 (permalink)  
Antiguo 30/10/2009, 10:38
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 15 años, 5 meses
Puntos: 0
Update de varios registros da error...ayuda

Estoy tratando de actualizar secuencialmente varios registros de una tabla, el caso es que para mostrar los resultados o cuando inserto no tengo problemas pero a la hora de actualizarlos da error, este es el código en cuestión:

<%
dim conn
dim rs

set conn = server.CreateObject("ADODB.Connection")
conn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\wremota\syphos.mdb"
set rs=conn.execute ("select * from tdetalletecnicas where nensayo = '" & session("nensayo") & "' ORDER by Iddetalle ASC")

set conn2 = server.CreateObject("ADODB.Connection")
conn2.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\wremota\syphos.mdb"
set rs2=conn2.execute ("select * from ttecnicas")

dim x
dim xnensayo, xtecnica, xprocedimiento, xresultado, xincertidumbre, xusuario
x = 0

do while not rs2.eof
' muevo valores de ensayo y tabla ttecnicas
xnensayo = session("nensayo")
xtecnica = rs2 ("tecnica")
xprocedimiento = rs2 ("procedimiento")

' muevo valores capturados para tdetallestecnicas y usuario

xresultado = request.Form("resultado" & x)
xincertidumbre = request.Form("incertidumbre" & x)
xusuario = session("usuario")

Set rs = conn.Execute("UPDATE tdetalletecnicas set nensayo='" & xnensayo & "', tecnica='" & xtecnica & "', procedimiento='" & xprocedimiento & "', resultado='" & xresultado & "', incertidumbre='" & xincertidumbre & "', usuario='" & xusuario & "' where nensayo='" & xnensayo & "'")

rs2.movenext
rs.movenext '(esta es la línea 77)
x = x + 1
loop
conn2.close
conn.close
%>

Tipo de error:
ADODB.Recordset (0x800A0E78)
La operación no está permitida si el objeto está cerrado.
/guardamodhojatrabajo.asp, línea 77

GRACIAS DE ANTEMANO POR LA AYUDA.
  #2 (permalink)  
Antiguo 30/10/2009, 10:57
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Update de varios registros da error...ayuda

Le hice algunos cambios, el recordSet RS no lo ocupabas para nada, el UPDATE no necesita ser enviado a un recordSet

Código ASP:
Ver original
  1. <&#37;
  2. dim conn
  3.  
  4. set conn = server.CreateObject("ADODB.Connection")
  5. conn.open "driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\wremota\syphos.mdb"
  6.  
  7. set rs2= conn.execute ("select * from ttecnicas")
  8.  
  9. dim x
  10. dim xnensayo, xtecnica, xprocedimiento, xresultado, xincertidumbre, xusuario
  11. x = 0
  12.  
  13. do while not rs2.eof
  14.    xnensayo       = session("nensayo")
  15.    xtecnica       = rs2 ("tecnica")
  16.    xprocedimiento = rs2 ("procedimiento")
  17.  
  18.    xresultado     = request.Form("resultado" & x)
  19.    xincertidumbre = request.Form("incertidumbre" & x)
  20.    xusuario       = session("usuario")
  21.  
  22.    conn.Execute("UPDATE tdetalletecnicas set nensayo='" & xnensayo & "', tecnica='" & xtecnica & "', procedimiento='" & xprocedimiento & "', resultado='" & xresultado & "', incertidumbre='" & xincertidumbre & "', usuario='" & xusuario & "' where nensayo='" & xnensayo & "'")
  23.  
  24.    rs2.movenext
  25.    x = x + 1
  26. loop
  27. conn.close
  28. %>

saludos
  #3 (permalink)  
Antiguo 30/10/2009, 13:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Update de varios registros da error...ayuda

He probado, en el formulario capturo cinco registros y me los actualiza todos con la información de la última línea (registrro).

Por eso necesito que el uptade de la tabla se mueva secuencialmente por cada actualización, hay un campo autonumérico que no sale en el código que es Iddetalle (clave principal de tdetalletecnicas.

Esta dificil el tema.

Gracias.
  #4 (permalink)  
Antiguo 30/10/2009, 13:54
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: Update de varios registros da error...ayuda

has probnado el codigo de Myakire

¿?
__________________
JuanRa Pérez
San Salvador, El Salvador
  #5 (permalink)  
Antiguo 30/10/2009, 17:27
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Update de varios registros da error...ayuda

No he revisado la lógica de tu código, solo "lo arreglé" para que no tronara...

Pero a golpe de vista, la lógica esta mal, ya que tu condición where es siempre la misma -> xnensayo = session("nensayo"), por eso no te actualiza más que uno solo

debes de hacer una prueba de escritorio de tu código para corregir eso
  #6 (permalink)  
Antiguo 01/11/2009, 11:13
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Update de varios registros da error...ayuda

Solucionado, lo cierto es que me faltaba comparar otro campo ya que nensayo no cambia y por eso actualizaba lomiso.

Así queda la actualización.

conn.Execute("UPDATE tdetalletecnicas set nensayo='" & xnensayo & "', tecnica='" & xtecnica & "', procedimiento='" & xprocedimiento & "', resultado='" & xresultado & "', incertidumbre='" & xincertidumbre & "', usuario='" & xusuario & "' WHERE ((nensayo='" & xnensayo & "') AND (tecnica='" & xtecnica & "'))")

GRACIAS A TODOS.
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 14:40.