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

ERROR al conectar con BD

Estas en el tema de ERROR al conectar con BD en el foro de ASP Clásico en Foros del Web. Holas!!! tengo un ASP el cual me inserta registros en una BD, pero al subirlo al servidor, me dá error de conexión... ADODB.Recordset error '800a0e7d' ...
  #1 (permalink)  
Antiguo 26/12/2002, 13:53
Avatar de Joselete  
Fecha de Ingreso: septiembre-2001
Ubicación: Granada, España
Mensajes: 263
Antigüedad: 23 años, 7 meses
Puntos: 0
ERROR al conectar con BD

Holas!!!

tengo un ASP el cual me inserta registros en una BD, pero al subirlo al servidor, me dá error de conexión...

ADODB.Recordset error '800a0e7d'

No se puede utilizar la conexión para realizar esta operación. Está cerrada o no es válida en este contexto


Este es el código y en negrita dnd recibo el error:

<%
If Request.Form <> "" Then
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
set oConn=Server.CreateObject("ADODB.Connection")
'oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Data/clientes.mdb")
oConn.Open "DSN=granada2000.net.ogade"

TBL.Open "admins" ,DB, 1, 2
TBL.AddNew
TBL("Nombre") = Request.Form("Nombre")
TBL("Apellidos") = Request.Form("Apellidos")
TBL("Empresa") = Request.Form("Empresa")
TBL("Email") = Request.Form("Email")
TBL("LOGIN") = Request.Form("LOGIN")
TBL("PASSWORD") = Request.Form("PASSWORD")
TBL.Update
TBL.Close

DB.Close

Set DB = Nothing
Set TBL = Nothing

Response.Write "Cliente agregado a la BASE DE DATOS con exito"
else
%>





Como puedo conectar mi ASP con la BD???


Gracias
__________________
"El Universo simpre quiere que ganemos"
  #2 (permalink)  
Antiguo 26/12/2002, 14:07
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
creo que tienes un error de conceptos..

si vas a usar un string de conexion que apunte a un dsn...debes usar esa cadena al momento de gestionar alguna consulta sql

oConn.Open "DSN=granada2000.net.ogade"

TBL.Open "admins" ,DB, 1, 2

"admins" ?? que es esto?
  #3 (permalink)  
Antiguo 26/12/2002, 16:40
 
Fecha de Ingreso: agosto-2002
Mensajes: 15
Antigüedad: 22 años, 7 meses
Puntos: 0
Hola!!!...

Tienes el DSN definido en el servidor... (o en la maquina desde la que corres la aplicacion?...)

Panel de control-> Herramientas Administrativas->Origenes de Datos(ODBC)

Weno, te digo porque a mi al principio me marcaba errores de conexion y era por eso

SALUDOS!!!
  #4 (permalink)  
Antiguo 26/12/2002, 17:25
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 23 años, 2 meses
Puntos: 29
también puede ser por esto:

'oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Data/clientes.mdb")

lo tienes comentado, sácale la '
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #5 (permalink)  
Antiguo 27/12/2002, 03:34
Avatar de Joselete  
Fecha de Ingreso: septiembre-2001
Ubicación: Granada, España
Mensajes: 263
Antigüedad: 23 años, 7 meses
Puntos: 0
Bakanzipp.. "admins" es el nombre de la tabla que quiero abrir para insertar registros en ella desde el form. Soy novatillo en esto y aún tengo muchisimas dudas.. lo siento

Marla, si q está definida la DSN, de hecho uso esa misma conexión para mostrar por ejemplo algunos registros en mi ASP de esa misma tabla y conecta perfectamente


Chulosoy... coy a quitarle ahora mismo la ´ y te comento

Por lo demás, gracias por vuestro tiempo...

Salu2!
__________________
"El Universo simpre quiere que ganemos"
  #6 (permalink)  
Antiguo 27/12/2002, 05:17
Avatar de Joselete  
Fecha de Ingreso: septiembre-2001
Ubicación: Granada, España
Mensajes: 263
Antigüedad: 23 años, 7 meses
Puntos: 0
He intentado conectar de esta forma:


<%
If Request.Form <> "" Then
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("../Data/ogade/clientes.mdb"))
TBL.Open "admins" ,DB, 1, 2

Pero no consigo darle la ruta correcta a la BD....

...no es una ruta de acceso válida. Asegúrese de que la ruta está escrita correctamente y que está conectado al servidor donde se encuentra el archivo.

si la BD de datos la tengo en el mismo directorio si lo consigo... pero no puedo acceder a ../data/ogade/clientes.mdb
__________________
"El Universo simpre quiere que ganemos"
  #7 (permalink)  
Antiguo 27/12/2002, 05:53
Avatar de Joselete  
Fecha de Ingreso: septiembre-2001
Ubicación: Granada, España
Mensajes: 263
Antigüedad: 23 años, 7 meses
Puntos: 0
De esta forma parece que he conectado bien, con DSN:

<%
If Request.Form <> "" Then
Dim Conn, TBL
Set Conn = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
Conn.Mode = adModeReadWrite
conn.open "DSN=granada2000.net.ogade"
TBL.Open "admins" ,Conn, 2, 1
TBL.AddNew -----------> AQUÍ ME DA ERROR

me indica:

ADODB.Recordset error '800a0cb3'

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


Alguna sugerencia??
ESTOY DESESPERADOOOOOO!!!.....

jejeje...
__________________
"El Universo simpre quiere que ganemos"
  #8 (permalink)  
Antiguo 27/12/2002, 06:18
Avatar de korev  
Fecha de Ingreso: diciembre-2002
Ubicación: Barcelona
Mensajes: 127
Antigüedad: 22 años, 4 meses
Puntos: 0
Me da la impresión de que vas probando sin una razón concreta, que te falta tener claro qué haces y porqué.
Date una vuelta por aquí :
http://www.aspfacil.com/articulos/de...?orden=c&cat=3
__________________
on error... resume next
  #9 (permalink)  
Antiguo 27/12/2002, 06:24
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 2 meses
Puntos: 1
Esto es lo que necesitas aclarar, los tipos de conexione y drivers:
http://asptutor.com/asp/vart.asp?id=51
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #10 (permalink)  
Antiguo 27/12/2002, 06:27
Avatar de Joselete  
Fecha de Ingreso: septiembre-2001
Ubicación: Granada, España
Mensajes: 263
Antigüedad: 23 años, 7 meses
Puntos: 0
Gracias por la respuesta Korev..

sé exactamente lo q quiero, pero como no sé mucho de ASP me cuesta trabajo explicarme.

El caso es q no puedo conectar con mi BD para agregarle registros desde un formulario.

Estoy viendo el enlace q me has puesto, pero es q no me aclara casi nada puesto q la mayoria de las cosas no entiendo exactamente cuando se tienen q usar...

De todas formas muchas gracias por tu post
__________________
"El Universo simpre quiere que ganemos"
  #11 (permalink)  
Antiguo 27/12/2002, 06:28
Avatar de Joselete  
Fecha de Ingreso: septiembre-2001
Ubicación: Granada, España
Mensajes: 263
Antigüedad: 23 años, 7 meses
Puntos: 0
maestro, de ahi he podio probar algunas conexiones, pero no lo consigo... no entiendo exactamente cual usar y por q
__________________
"El Universo simpre quiere que ganemos"
  #12 (permalink)  
Antiguo 27/12/2002, 06:41
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 2 meses
Puntos: 1
Una DSN en una conexion que declaras y que sirve para cualquier web o subweb del servidor, generalmente no esta en los directorios navegables del servidor por lo que es mas seguro, pero es mas lenta que OLEDB, otra ventaja es que no necesita declarar driver.

Si no tienes un panel de control que te permita declarar DSN, deberas subir el fichero MDB, o del tipo que sea y usar las otras conexiones de acceso a fichero con driver OLEDB.
Especificas la ruta, y en la SQL, los criterios, nombre de tabla campos, etc
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #13 (permalink)  
Antiguo 27/12/2002, 06:44
Avatar de korev  
Fecha de Ingreso: diciembre-2002
Ubicación: Barcelona
Mensajes: 127
Antigüedad: 22 años, 4 meses
Puntos: 0
De nada, para eso estamos. Pero tienes errores de concepto gordos. Solamente mirando por encima las variaciones que has ido haciendo ya se ve un meneo de tres pares con los cerrojos, con la forma de abrir... en fin, que necesitas leer y comprender esos artículos que hay en el enlace que te pasé antes.

Te paso un ejemplo de conexión a access (2000) que funciona. Dar este tipo de código es la mejor forma de no espabilarse, pero creo que en este post nos hemos mareado todos ya.

sql="select * from tabla"

Conndrive = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/dirdbs/nomarch.mdb")
set myconn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
myconn.Open (Conndrive)
rs.Open SQL, myconn, 3, 3

(...)

rs.close
myconn.Close
set rs=nothing
set myconn=nothing
__________________
on error... resume next
  #14 (permalink)  
Antiguo 27/12/2002, 06:49
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
si tu dices que esa conexiones te funcionan para consultas a tu base...no la cambies...para mi que el problema esta en la insercion...

pruebala de esta manera

Set Conn = Server.CreateObject("ADODB.Connection")
conn.open "DSN=granada2000.net.ogade"

sql="insert into admins values('" & Request.Form("Nombre") & "','" & Request.Form("Apellidos") & "', '" & Request.Form("Empresa") & "','" & Request.Form("Email") & "','" & Request.Form("LOGIN") & "','" & Request.Form("PASSWORD") & "');"

response.write sql
conn.execute(sql)
  #15 (permalink)  
Antiguo 27/12/2002, 06:51
Avatar de Joselete  
Fecha de Ingreso: septiembre-2001
Ubicación: Granada, España
Mensajes: 263
Antigüedad: 23 años, 7 meses
Puntos: 0
ok....

Si tengo acceso a mi panel de control, de hecho he creado mi DSN q se llama granada2000.net.ogade

Esta misma DSN la uso para otra página ASP q me permite hacer un login y password comprobando registros de una BD (en esa DSN) sin ningún problema, y la conexión la hago:

set oConn=Server.CreateObject("ADODB.Connection")
'oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Data/clientes.mdb")
oConn.Open "DSN=granada2000.net.ogade"

Lo q necesito es q desde un formulario llamando a un ASP me de permiso para insertar registros (usuarios q se daran de alta para q tengan acceso al LOGIN anteriormente citado) en esa misma base de datos desde la q conecto para loguear(ruta: Data/clientes.mdb).

El problema es q no me conecta a esa BD, sin embargo, si cojo esa BD y la copio en el mismo dorectorio de la BD, consigo conectar con ella y agregar registros sin ningun problema de esta forma:

<%
If Request.Form <> "" Then
Dim DB, TBL
Set DB = Server.CreateObject("ADODB.Connection")
Set TBL = Server.CreateObject("ADODB.RecordSet")
DB.Mode = adModeReadWrite
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("clientes.mdb"))

No sé si me he explicado bien, espero q si
__________________
"El Universo simpre quiere que ganemos"
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 04:43.