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

Error en la este código UPDATE

Estas en el tema de Error en la este código UPDATE en el foro de ASP Clásico en Foros del Web. Hola, estoy ahciendo una página, y en concreto en esta que hay una consulta actualizable, me está dando un error que no cinsigo resolver. El ...
  #1 (permalink)  
Antiguo 17/12/2007, 07:05
 
Fecha de Ingreso: julio-2005
Mensajes: 70
Antigüedad: 18 años, 11 meses
Puntos: 0
Error en la este código UPDATE

Hola, estoy ahciendo una página, y en concreto en esta que hay una consulta actualizable, me está dando un error que no cinsigo resolver. El código es el siguiente:

<%
'Ident=Request.QueryString("Id")
Dim Conn, Connect_String,Respuesta
Connect_String="Provider=MSDASQL.1;Persist Security Info=False;Data Source=prueba"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeReadWrite
Conn.ConnectionString = Connect_String
Conn.Open

Dim strSQLDeseos
strSQLOtros = "SELECT Otros.* FROM Otros WHERE Id= 1"
Set rsOtros = Server.CreateObject("ADODB.Recordset")


'set rs=Conn.execute(strSQLDeseos)

rsDeseos.Open strSQLOtros, Conn, 3
If rsDeseos.RecordCount = 0 Then
'***no hay Deseos activos***
Response.Write "num=0&kk=1"
Else
response.write(conn.Mode)
'sqlstr="UPDATE Otros SET Activo = 1 WHERE Id=1"
'set rs=Conn.execute(sqlstr)
rsDeseos.MoveFirst
rsDeseos("Activo") = True
rsDeseos.Update
Response.Write "num=1"
End If

rsDeseos.Close
Set rsDeseos = Nothing
Conn.Close
Set Conn = Nothing
%>

Si la ejecuto, me da el siguiente error:

0

ADODB.Recordset error '800a0cb3'

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

/mio/modifica.asp, línea 26

El servidor es uno dedicado y obviamente no hay limpitación ni bloqueo alguno, ya que ejecutamos otras aplicaciones ASP sin problemas.

Si funciona correctamente, este código debería ejecutar una consultar que para el registro cuya Id=1 actualizara el campo Activo a Verdedaro.

El campo es un Si/No y la base de datos una Access versión 2000.

Gracias.
  #2 (permalink)  
Antiguo 17/12/2007, 08:42
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 4 meses
Puntos: 8
Re: Error en la este código UPDATE

Al abrir el recordset prueba a especificar un valor en la propiedad "Locktype". Por defecto, el locktype es "adLockReadOnly" y no te permitirá modificarlo. Algo asi:


rsDeseos.Open strSQLOtros, Conn, 3, adLockPessimistic

o

rsDeseos.lockType=adLockPessimistic 'o adLockOptimistic o adLockBatchOptimistic
rsDeseos.Open strSQLOtros, Conn, 3
__________________
Kelpie
  #3 (permalink)  
Antiguo 17/12/2007, 09:00
 
Fecha de Ingreso: julio-2005
Mensajes: 70
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Error en la este código UPDATE

Hola, he probado lo que ma has dicho, y ahora me da este error:

ADODB.Recordset error '800a0bb9'

Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.

/modifica5.asp, línea 16

La linea 16 es precisamente esta:

rsDeseos.Open strSQLOtros, Conn, 3, adLockPessimistic


Saludos,
  #4 (permalink)  
Antiguo 19/12/2007, 09:18
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 4 meses
Puntos: 8
Re: Error en la este código UPDATE

Vale, culpa mía. Ese 3 que tienes indica un cursor estático, por lo que no tendría sentido un bloqueo. Prueba con:

rsDeseos.Open strSQLOtros, Conn, 2, adLockPessimistic

O lo que es lo mismo:

rsDeseos.Open strSQLOtros, Conn, adOpenDynamic, adLockPessimistic


Saludillos
__________________
Kelpie
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 01:48.