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

Sigo con el problema de asp, hay un nuevo mensaje de error

Estas en el tema de Sigo con el problema de asp, hay un nuevo mensaje de error en el foro de ASP Clásico en Foros del Web. Hola, un saludo desde La Ciudad de la Habana Estoy haciendo un sitio, en el cua una de las secciones es un libro de visitas. ...
  #1 (permalink)  
Antiguo 07/09/2006, 15:28
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Pregunta URGENTE. Error ASP y MS.Jet.OLEDB.4.0

Hola, un saludo desde La Ciudad de la Habana

Estoy haciendo un sitio, en el cua una de las secciones es un libro de visitas.
El libro de visitas lo estoy haciendo con ASP y Access 2003, ya programe la consulta. Pero cuando voy a programar la pagina de Insertar a la bd hay un problema. Pongo el c'ogido de conexion:

<%

Fecha = request.Form("Fecha")
Nombre = request.form("Nombre")
Pais = request.form("Pais")
Email = request.form("Email")
url = request.form("url")
Asunto = request.form("Asunto")
Mensaje = request.form("Mensaje")


Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeReadWrite
Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("guestbook.mdb"))
set rs=createobject("ADODB.Recordset")


rs.open "Entries",conn
CursorType = adOpenKeyset
LockType = adLockOptimistic


rs.addnew
rs("Nombre")=Nombre
rs("Email")=Email
rs("Pais")=Pais
rs("url")=url
rs("Asunto")=Asunto
rs("Mensaje")=Mensaje
rs("Fecha")=Date()
rs.update
db.close
set rs = nothing
set db = nothing


___________________________

El error que me da es el siguiente:
Current Recordset do not support updating. It may be a limitation of the provider or of the selectd lock type.


Les agradecer'ia mucho que me respondan lo antes posible. Muchas gracias de todos modos.

tienen una amiga en Cuba

cynthia
  #2 (permalink)  
Antiguo 07/09/2006, 17:17
Avatar de JHarada  
Fecha de Ingreso: marzo-2006
Ubicación: Peru - Lima - Los Olivos
Mensajes: 28
Antigüedad: 18 años, 2 meses
Puntos: 0
Puede ser esto

Pon lo siguiente
CursorType = adOpenDinamic
me parece que es por eso.
  #3 (permalink)  
Antiguo 08/09/2006, 07:10
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Pregunta

eso ya lo he hecho y nada.

Me parece que el prolema está en el lock type
  #4 (permalink)  
Antiguo 08/09/2006, 07:12
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Desesperadaaaaaaaaa¡¡

Me falta
dim rs, en la parte del Recordset, pero eso tampoco es la fuente del problema.
  #5 (permalink)  
Antiguo 08/09/2006, 07:18
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Hay que depurar un poco el código, tienes lineas demàs o mal colocadas. El error en particular lo eliminas con:

rs.open "Entries", Conn, 3, 3


Supongo que "Entries" es una consulta de SQL

Saludos
  #6 (permalink)  
Antiguo 08/09/2006, 09:43
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 9 meses
Puntos: 1
Haber no se si soy el unico que no entendio, ahi tienes 4 parrafos.

En el primero recuperas datos de un formulario, ok
En el segundo armas tu conexion.
En el tercero le pasas parametros y atributos a tu conexion
Y en el cuarto le asignas valores a los rs?

Yo nunca lo he intentado asi, pero lo veo un poco complicado, te sugiero a mi parecer que lo hagas de una forma facil, mas o menos asi,

1.-Recuperas datos de tu formulario.
2. Creas tu conexion
3..- Despues haces un Insert into, dandole en el values, tus variables donde guardaste los valores del formualrio, espero haber sido de ayuda :)
__________________
<>< EN MOMENTOS DE CRISIS, SOLO LA IMAGINACIÓN ES MÁS IMPORTANTE QUE EL CONOCIMIENTO <><
  #7 (permalink)  
Antiguo 08/09/2006, 20:45
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Ante todo gracia por responderme y disculpen si mi título no fue el más adecuado, no fue con intensión, lo siento.

Esta respuesta es específica para Juanmi:

El último bloque de código que es el que te preocupa es lo siguiente:

dim rs
set rs = Server.CreateObject("ADODB.Recordset") ...Creo el Recordet
rs.Open ("Entries"), db ....es el nombre de la tabla y db es la conexion
cursorType y lockType son los atributos que lleva el método open del Recordset, y todo lo anterior lo saqué del libro de asp 3. Esta todo allí escrito, no entiendo qué es lo que no funciona??

AdNew
rs("Nombre")= Nombre...le asigno a Nombre el valor del formulario.
Update ...Y AQUI ES CUANDO VIENE EL PROBLEMA, DA EL ERROR QUE PUSE ARRIBA.

Ahora, la forma que me propones ya la he intentado tambien, y me da el mismo error, dice que necesito una base de datos que permita ser update.
La bd es en Access 2003. Windows XP.

Un millón de gracias....Cynthia de Cuba, jajaj Como en las leyendas celtas.
besos
  #8 (permalink)  
Antiguo 08/09/2006, 20:50
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Esta respuesta es para Myakire :
Entries es el nombre de la tabla dentro de la bd
db es la conexión
los números 3 que significan??

Quiero que sepan que todo ese código que escribí lo estudié por el libro de ASP y que no entiendo por qué no funciona, debería funcionar, me rompo la cabeza, cambio los locktype, el modo del open de la conexion y na, no entiendo que sucede.

Muchas gracias
Cynthia la Galatai
  #9 (permalink)  
Antiguo 08/09/2006, 20:51
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
UPSSSSSSSSSSSSS
cuando digo db es conn, lo siento se me fue
  #10 (permalink)  
Antiguo 09/09/2006, 08:33
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Cita:
Iniciado por martapicart Ver Mensaje
Esta respuesta es para Myakire :
Entries es el nombre de la tabla dentro de la bd
db es la conexión
los números 3 que significan??

Quiero que sepan que todo ese código que escribí lo estudié por el libro de ASP y que no entiendo por qué no funciona, debería funcionar, me rompo la cabeza, cambio los locktype, el modo del open de la conexion y na, no entiendo que sucede.

Muchas gracias
Cynthia la Galatai

Chetos, solo por curiosidad, ¿qué libro es ese?, jejeje. Bueno, ya en serio, supongo que te habràs confundido un poco sobre todo en la parte de los mètodos de apertura de conexiones y tablas, pero eso se arregla en este momento.

Vamos por partes:

Tu tienes esto:
Código:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeReadWrite
Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("guestbook.mdb"))

set rs=createobject("ADODB.Recordset")
rs.open "Entries",conn
CursorType = adOpenKeyset
LockType = adLockOptimistic 
Aqui hay tres cosas, importantes. Primero, que abres la conexiòn a la BD's de lectura y escritura; y es que hay diferentes formas de apertura de la conexión. Hasta ahi estamos bien, siempre y cuando hayas definido un valor para la constante adModeReadWrite, ya que esta no viene por defecto en vbscript ni ASP, lo normal es incluir todo el archivo adovbs con la extensión que quieras (.asp, .inc, .txt, etc).

Las otras dos lineas que te marquè estan mal por que no estas asignando los valores al RecordSet, debrían ser:


rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic

Todo te lo explican en este artículo.

Saludos
  #11 (permalink)  
Antiguo 09/09/2006, 13:13
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 7 meses
Puntos: 3
Aca va la solucion

http://support.microsoft.com/kb/287455/
  #12 (permalink)  
Antiguo 09/09/2006, 13:44
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
gracias mil

besos
  #13 (permalink)  
Antiguo 11/09/2006, 18:17
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Sigo con el problema de asp, hay un nuevo mensaje de error

Hola de nuevo:

Cuando se refieren a que vincule el adovbs que quiere decir? Que lo guarde con cualquiera de las extensiones que me dicen en la misma carpeta donde está la página que ejecuta el asp? o que copie y peque le código en el html?

Bien, lo que hice fue lo siguiente:

Copié el advbs en el html
cambie a

dim rs
set rs = Server.Create Object("ADODB.Recordset")
rs.Open("Entries"), db
rs.CursorType =adOpenDynamic
rs.LockType = adLockOptimistic

Y entonces el nuevo mensaje de error es: No se puede ejecutar la linea del CursorType, porque el Recordset está abierto.

Qué hice?
Cambié todos los cursores y nada el mismo error.


¿Qué habré hecho mal?
  #14 (permalink)  
Antiguo 11/09/2006, 18:22
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Cita:
Hola de nuevo:

Cuando se refieren a que vincule el adovbs que quiere decir?...
Sólo te cito para que notes lo descolocado que queda tu mensaje así fuera de contexto. Es mejor que continues en tu mensaje original. Abri nuevos temas cuando tengas una duda o problema que no esté directamente relacionado con el anterior.

Gracias

Ah, me olvidaba... uno tus dos mensajes en uno. Un saludo
__________________
...___...
  #15 (permalink)  
Antiguo 11/09/2006, 21:31
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Prueba con:

rs.CursorType =adOpenDynamic
rs.LockType = adLockOptimistic
rs.Open("Select * from Entries"), conn


(Seguramente si colocas solo el nombre de la tabla, con access funcionará, pero te suguiero que lo cambies para que sea más "claro" (para mi, por lo menos, jejeje))

Saludos
  #16 (permalink)  
Antiguo 12/09/2006, 06:48
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Error de Cursor type

Bueno, gracias de nuevo.
Ya averigué como vinvuar el advbs, pero me sigue dando el error de que no puede ejecutar la linea del cursortype porque el recordset está abierto. Que puede ser eso.

saludos
  #17 (permalink)  
Antiguo 12/09/2006, 06:52
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Y si abro una nueva pregunta en mi mismo tema como puedo asegurarme de qye me verán? Cómo saben ustedes qye soy yo preguntando y no alguien respondiéndome?
  #18 (permalink)  
Antiguo 12/09/2006, 07:00
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Cita:
Ya averigué como vinvuar el advbs, pero me sigue dando el error de que no puede ejecutar la linea del cursortype porque el recordset está abierto. Que puede ser eso.
No has hecho las modificaciones que te dije, o si sì las hiciste aún en alguna parte de tu código quieres modificar las propiedades del RecordSet despues de que lo abriste (tal vez lo tienes en un ciclo=

Cita:
Y si abro una nueva pregunta en mi mismo tema como puedo asegurarme de qye me verán? Cómo saben ustedes qye soy yo preguntando y no alguien respondiéndome?
¿què? ¿qué dijo?
  #19 (permalink)  
Antiguo 12/09/2006, 08:38
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Oye mayakire tienes muy buen sentido del humor y si hice lo que dices y no tengo ningu bucle.
No me había fijado en el tiburón, seguro que no eres así, o sí?
  #20 (permalink)  
Antiguo 12/09/2006, 11:50
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Solo cuando se requiere

¿puedes poner otra vez algo del código de como esta ahora?
  #21 (permalink)  
Antiguo 12/09/2006, 11:52
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Que no es asi??? ja ja ja, el tiburon siempre anda "en el agua", saludos maestro tigurón!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #22 (permalink)  
Antiguo 12/09/2006, 13:21
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
a eso me referia, jejeje
  #23 (permalink)  
Antiguo 18/09/2006, 07:51
Avatar de martapicart  
Fecha de Ingreso: septiembre-2006
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
besitos a todos, aunque no me respondan
  #24 (permalink)  
Antiguo 18/09/2006, 08:18
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
No me digas que todavía tienes ese problema
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:40.