Programación Web y Scripting > ASP

 No Puedo Actualizar Un Registro

(1/1)

mateamargo:
Este es el código de mi página ASP para actualizar el estado de un contacto.

--- Código: Text --- <!-- #INCLUDE FILE="conexion.asp" --> <%dim contdim query set cont = Request.QueryString("cont")set rs_borrar = Server.CreateObject("ADODB.Recordset") query = "select * from contactos where cnt_id = " & cont rs_borrar.Open query, cn_string, 3, 3rs_borrar("cnt_borrado") = truers_borrar.update%>  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

--- Fin de la cita ---
¿Alguien sabe qué puede ser?

ROBER.29:
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 --- <!-- #INCLUDE FILE="conexion.asp" --> <%dim contdim query set cont = Request.QueryString("cont")set cnn = Server.CreateObject("ADODB.Connection") cnn.Open cn_string If Request.QueryString("cont") <> "" AND IsNumeric(Request.QueryString("cont")) Then  query = "UPDATE contactos SET cnt_borrado = 1"  query = query & " WHERE cnt_id = " & CInt(cont)   cnn.Execute(query)End If cnn.Close%>  
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.

oonai:
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

Navegación

[0] Índice de Mensajes

Ir a la versión completa