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

votación en asp - no funciona el update

Estas en el tema de votación en asp - no funciona el update en el foro de ASP Clásico en Foros del Web. Estoy intentando crear un sistema de votación pero me da error en la sig. línea oConn.Execute "UPDATE encuesta SET Dato1 = "&RS("Dato1")+1&" " Al probar ...
  #1 (permalink)  
Antiguo 29/06/2005, 11:15
 
Fecha de Ingreso: abril-2002
Mensajes: 22
Antigüedad: 22 años, 1 mes
Puntos: 0
votación en asp - no funciona el update

Estoy intentando crear un sistema de votación pero me da error en la sig. línea

oConn.Execute "UPDATE encuesta SET Dato1 = "&RS("Dato1")+1&" "

Al probar esto:
RS("Dato1") = 3
RS.Update()

Internet Explored me dice


ADODB.Recordset error '800a0cb3' .
El Recordset actual no admite actualizaciones. Puede ser una limitación del proveedor o del tipo de bloqueo seleccionado.

¿Es un error de la base de datos? Estoy usando una de Access para probar.

Gracias
  #2 (permalink)  
Antiguo 29/06/2005, 17:37
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
al parecer, dato1 es un entero. si es así, prueba con
oConn.Execute "UPDATE encuesta SET Dato1 = "&cint(RS("Dato1"))+1&" "
  #3 (permalink)  
Antiguo 29/06/2005, 18:31
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Ese error te lo da porque el objeto RS no permite sentencias de borrado, insercion o actualizacion. Lo que no entiendo es que el error te lo da en una linea que haces una sentencia común SQL, que no tocas ningún RS (al menos no en el código que pusiste). Si hubieras hecho la actualización con el RS, ahí si que cabría ese error. De todas formas, el problema está en el bloqueo que elijas para el RS. Por defecto el bloqueo que tiene el RS es el adLockReadOnly, el cual sirve únicamente para leer los registros, no admite modificaciones en la base de datos. El que debes usar es adLockOptimistic, o su constante 3, que si te permite actualizaciones. Me parecen que eran cuatro o cinco los tipos de bloqueos que se podían seleccionar, pero no recuerdo los otros.
La forma en que usas el bloqueo sería así:

set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open StrQL, conexion, 1, 3 'Este último número es el tipo de bloqueo seleccionado

Y con eso ya estarás habilitado para hacer modificaciones, tanto borrado, como inserción o actualización de registros.
Saludos!.
__________________
Add, never Remove
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 22:21.