• Sábado 9 de Noviembre de 2024, 03:27

Autor Tema:  No Puedo Actualizar Un Registro  (Leído 2135 veces)

mateamargo

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
No Puedo Actualizar Un Registro
« en: Martes 28 de Junio de 2005, 04:07 »
0
Este es el código de mi página ASP para actualizar el estado de un contacto.
Código: Text
  1.  
  2. <!-- #INCLUDE FILE="conexion.asp" -->
  3.  
  4. <%
  5. dim cont
  6. dim query
  7.  
  8. set cont = Request.QueryString("cont")
  9. set rs_borrar = Server.CreateObject("ADODB.Recordset")
  10.  
  11. query = "select * from contactos where cnt_id = " & cont
  12.  
  13. rs_borrar.Open query, cn_string, 3, 3
  14. rs_borrar("cnt_borrado") = true
  15. rs_borrar.update
  16. %>
  17.  
  18.  
Y el error que me muestra es el siguiente:
Citar
ADODB.Recordset (0x800A0CB3)
El Recordset actual no admite actualizaciones. Puede ser una limitación del proveedor o del tipo de bloqueo seleccionado.
/digigenda/borrar.asp, línea 15
¿Alguien sabe qué puede ser?

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: No Puedo Actualizar Un Registro
« Respuesta #1 en: Martes 28 de Junio de 2005, 08:30 »
0
Hola,

El problema lo tienes en el tipo de apertura del recordset. De todas formas te explico otra forma para que hagas lo que quieres.

Código: Text
  1.  
  2. <!-- #INCLUDE FILE="conexion.asp" -->
  3.  
  4. <%
  5. dim cont
  6. dim query
  7.  
  8. set cont = Request.QueryString("cont")
  9. set cnn = Server.CreateObject("ADODB.Connection")
  10.  
  11. cnn.Open cn_string
  12.  
  13. If Request.QueryString("cont") <> "" AND IsNumeric(Request.QueryString("cont")) Then
  14.   query = "UPDATE contactos SET cnt_borrado = 1"
  15.   query = query & " WHERE cnt_id = " & CInt(cont)
  16.  
  17.   cnn.Execute(query)
  18. End If
  19.  
  20. cnn.Close
  21. %>
  22.  
  23.  

El campo cnt_borrado supongo que es de tipo bit y por eso le introduzco un 1 que equivale a True, y el campo cnt_id supongo que es de tipo numérico por eso convierto el valor de queryString a entero y antes de nada valido que no este vació y sea de tipo entero para que luego la consulta de actualización de SQL no de error. en el caso de que el campo cnt_id no sea de tipo numérico deberías quitar la validación de que sea numérico (el "AND IsNumeric(Request.QueryString("cont"))").

Espero que te sirva.

Un saludo.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

oonai

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: No Puedo Actualizar Un Registro
« Respuesta #2 en: Viernes 5 de Agosto de 2005, 06:44 »
0
Este codigo lo hace ok

Set conectar = Server.CreateObject("ADODB.Connection")
conectar.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("basededatos.mdb"))
Set rs=Server.createobject("ADODB.Recordset")
rs.ActiveConnection = conectar
rs.Source = "solicitud"
rs.LockType = 2    'Importante, aqui le das permiso a la BD para grabar
rs.open

rs("valor")="lo que sea"

rs.update

rs.close
conectar.close
Set rs = nothing
Set conectar = nothing
%>

Espero que te sirva .. OONAI
Si  deseas  disfrutar del arco iris, primero deberás soportar la lluvia " Dolly Parton, USA "