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

problema con recordset

Estas en el tema de problema con recordset en el foro de ASP Clásico en Foros del Web. Antes tenia un archivo db con el que realizaba la conexion con la base de datos de esta forma: <% dim db dim strConn strConn ...
  #1 (permalink)  
Antiguo 21/06/2003, 05:27
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
problema con recordset

Antes tenia un archivo db con el que realizaba la conexion con la base de datos de esta forma:
<%
dim db
dim strConn
strConn = "jesusconexion"
Set db = Server.CreateObject("ADODB.Connection")
db.open strConn %>


Ahora la tengo en Brinkster y realizo la conexión de esta forma:
<%
dim db
Set db = Server.CreateObject("ADODB.Connection")
db.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\mynombredeusuaio \db\basedatos.mdb")

%>
Cuando alguna pagina tiene que conectar con la base de datos pongo al principio:
<!-- #include file="db.asp" -->

El problema que tengo es que en una pagina (registro.asp) que uso para agregar un Nuevo usuario a la base de datos tengo:
<!-- #include file="db.asp" -->
……………codigo……
Set rscust = Server.CreateObject("ADODB.RecordSet")
rscust.Open "clientes", strConn , adOpenKeySet, adLockPessimistic, adCmdTable
rscust.AddNew
rscust("nombre") = cnombre
rscust("email") = cemail
rscust("pass") = cpass1
rscust.update
Session("idcliente") = rscust("idcliente")
rscust.Close
end if
Set rscust = Nothing
response.redirect("foro.asp")

Antes de alojarla en brinkster, en Internet Information services me funcionaba, tras tener que cambiar el archivo db.asp para alojarla en brinkster ha dejado de funcionar.
¿Cómo deberia de cambiar la pagina registro.asp para que volviese a funcionar?

Gracias por adelantado, si soluciono esto ya prácticamente conseguiria terminar la pagina que estoy haciendo.
  #2 (permalink)  
Antiguo 21/06/2003, 14:28
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años
Puntos: 7
Cambia tu include para que sea

dim strConn
dim db
strConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\mynombredeusuaio \db\basedatos.mdb")Set db = Server.CreateObject("ADODB.Connection")
db.open strConn
__________________
No tengo firma ahora... :(
  #3 (permalink)  
Antiguo 23/06/2003, 03:13
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias Mickel, he probado lo que me has dicho, pero me aparece el siguiente mensaje de error

ADODB.Recordset error '800a0e78'
Operation is not allowed when the object is closed.
/web/registro.asp, line 62



Set rscust = Server.CreateObject("ADODB.RecordSet")
rscust.Open "clientes", strConn, adOpenKeySet, adLockPessimistic, adCmdTable
rscust.AddNew
rscust("nombre") = cnombre 'ESTA ES LINEA 62
rscust("email") = cemail
rscust("pass") = cpass1
rscust.update
Session("idcliente") = rscust("idcliente")
rscust.Close
end if
Set rscust = Nothing

Última edición por sqa212; 23/06/2003 a las 05:41
  #4 (permalink)  
Antiguo 24/06/2003, 03:34
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Nada que por mas que pruebo, no consigo que funcione.
Estoy desesperado, la web tiene que estar lista en breve porque tiene que mostrar un tema un dia determinado.
Please, por favor, ayudarrr!!! No puedor.......
  #5 (permalink)  
Antiguo 24/06/2003, 03:40
Avatar de damargon  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 386
Antigüedad: 21 años
Puntos: 3
Quizás puede ser esto:

la línea de código: rscust.Close
sácala del IF...end if

Cuando cierres un recordset procura que la línea que ejecuta ese comando sea la última linea de todo el código.

Espero que sea eso...
  #6 (permalink)  
Antiguo 24/06/2003, 03:49
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Que va lo he sacado del if pero nada, gracias anyway, a ver si se os ocurre otra cosa a alguien
  #7 (permalink)  
Antiguo 24/06/2003, 03:54
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
Lo que te dice es que el objeto esta cerrado, asi que el problema esta en:
Donde declaras la conexion
Donde la abres.

Mira a ver si colocando la conexion asi te funciona;
dim db
Set db = Server.CreateObject("ADODB.Connection")
db.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/mynombredeusuaio /db/basedatos.mdb")
__________________
Tu portal de manga y anime.
  #8 (permalink)  
Antiguo 24/06/2003, 03:54
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
meru-kun como tu has puesto es como lo tenia puesto al principio de todo.
En el primer mensaje de mi pregunta donde pone:
Ahora la tengo en Brinkster y realizo la conexión de esta forma:
<%
dim db
Set db = Server.CreateObject("ADODB.Connection")
db.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\mynombredeusuaio \db\basedatos.mdb")
  #9 (permalink)  
Antiguo 24/06/2003, 03:57
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
Lo que yo te digo es que cambies las \ por /
__________________
Tu portal de manga y anime.
  #10 (permalink)  
Antiguo 24/06/2003, 04:09
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
meru-kun tampoco, de todas formas el error pienso que no esta en el fichero db.asp sino en regitro.asp porque crea una nueva conexion de esta forma o no??

Set rscust = Server.CreateObject("ADODB.RecordSet")
rscust.Open "clientes", strConn, adOpenKeySet, adLockPessimistic, adCmdTable
rscust.AddNew
rscust("nombre") = cnombre 'ESTA ES LINEA 62
rscust("email") = cemail
rscust("pass") = cpass1
rscust.update
Session("idcliente") = rscust("idcliente")
rscust.Close
end if
Set rscust = Nothing

CREO QUE LOS CAMBIOS DEBEN DE HACERSE AQUI
  #11 (permalink)  
Antiguo 24/06/2003, 08:45
 
Fecha de Ingreso: junio-2003
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
Yo tuve algunos problemas en su momento con el recordset.addnew y opté por usar el cn1.Execute "INSERT INTO Clientes (tacata) values (tiquiti)"... prueba eso a ver que tal, y así no tienes que abrir un recordset
  #12 (permalink)  
Antiguo 26/06/2003, 17:57
 
Fecha de Ingreso: junio-2003
Ubicación: Chilangolandia
Mensajes: 9
Antigüedad: 21 años
Puntos: 0
Que tal yo hosepdo en bnikster tambien, dada la gran cantidad de usuarios y cuentas, el servidor web no mantiene variables de session, podrias dar la cadena completa en cada llamada, esto ayudaria
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 16:14.