Error al acceso a base de datos con dns-less

Tengo un problema con la conexión a la base de datos sin DNS
La realizo tal como me indica el servidor:
<%Dim Conn
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open ("DRIVER={Microsoft Access Driver(*.mdb)};DBQ=c:\usr\home\hardocasio\website\webdocs\private\dbase\ofertas.mdb;UID=admin")
sSQL="Select* From ofertes"
set RS=Conn.Execute(sSQL)%>
pero el navegador me da el siguiente error:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
¿Qué pasa?
La programación esta bien pues me funciona correctamente en otro servidor gratuito, pero en este que es el de pago no

8 respuestas

Respuesta
1
Es posible que el ODBC de ese servidor no esté correctamente instalado. Prueba con la siguiente cadena de conexión:
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = c:\usr\home\hardocasio\website\webdocs\private\dbase\ofertas.mdb"
Respuesta
1
Si me dices que en otro servidor funciona, creo que lo primero que deberías hacer es averiguar si el actual servidor, es decir, el que no te funciona, soporta Microsoft Access. Asegurate de eso.
Si ya estás cierto de lo anterior, verifica que el valor que le das al parámetro DBQ de la conexión sea correcto. Quizás te ayude usar un método del objeto Server. Aquí te muestro un ejemplo:
Supongamos que tu página ASP es page.asp y se ejecuta en el servidor en el siguiente directorio "c:\usr\web\page.asp" y tu base de datos está en "c:\usr\web\dbase\ofertas.mdb"
puedes usar el siguiente metodo;
Server. Mappath("dbase\ofertas.mdb") donde solo especificas la dirección relativa en el servidor
Quedaría así:
Conn.Open ("DRIVER={Microsoft Access Driver(*.mdb)};DBQ=" & Server.Mappath("dbase\ofertas.mdb") & ";UID=admin;Pwd=")
Si esto no funciona intenta otras formas de conexión. Te dejo una URL donde encontrarás los principales tipos de conexiones
http://www.able-consulting.com/MDAC/ADO/Connection/ODBC_DSNLess.htm#ODBCDriverForAccess
y
http://www.able-consulting.com/ADO_Conn.htm
Respuesta
1
Pues es raro, porque la cadena de conexión la tienes bien, puedes intentar usar otra cadena de conexión, prueba en esta página: http://www.able-consulting.com/ADO_Conn.htm
De todas formas intenta usar dsn, son más rápidas, no se si el servidor de pago te lo permitirá, pero por lo general, todos dan ese servicio.
Respuesta
1
Te aconsejo que la base de datos la pongas en un directorio de tu web y utilizando el método server.mappath para asignarle el sitio virtual a la base de datos y que no la coja de un directorio real sino virtual.
Si necesitas más info, pregunta tus dudas
Respuesta
1
Se me ocurre que 2 cosas:
1) Que halla algún problema con los permisos.
2) Que el path en el servidor no sea ese ("c:\usr\...").
Tenés 2 alternativas y más teniendo en cuenta que es un servidor por el que estás pagando:
1) Que te creen un Dns, y ahorrarte lo engorroso del connectionString.
2) Seguir con el connectionString, y que pedirles que te den el path exacto de donde se localiza tu .mdb.
Respuesta
1
Así a bote pronto se me ocurren dos posibilidades por las que te puede dar ese error.
1.-El driver que estas utilizando está instalado en el nuevo servidor. Tendrías que consultar con el servicio técnico de este servidor, pues es de pago y deben tener algún servicio de este tipo.
2.-Que la ruta de la base de datos sea diferente o no tiene acceso a ella, habría que revisar los permisos que tienes sobre el directorio en cuestión y si esa es la ruta correcta.
Por lo tanto creo que la mejor solución es que te pongas en contacto con el servicio técnico y ellos te comprueben los datos anteriores.
Respuesta
1
Manejamos ADO de manera diferente. A mí nunca me ha salido el error '80004005'. Estudié las sentencias que mandaste y tengo tres observaciones:
1. En la línea de Conn. Open tú tienes ésto:
Conn.Open ("DRIVER={Microsoft Access Driver(*.mdb)};DBQ=c:\usr\home\hardocasio\website\webdocs\private\dbase\ofertas.mdb;UID=admin")
Yo lo uso así (sin paréntesis ni UID):
Conn.Open "DRIVER={Microsoft Access Driver(*.mdb)};DBQ=c:\usr\home\hardocasio\website\webdocs\private\dbase\ofertas.mdb"
2. En la línea del recordset tienes
sSQL="Select* From ofertes"
El asterisco está pegado a la palabra select.
3. ¿Dónde defines a RS?
Realiza los cambios y ojalá te sirvan. Si no te sirven, cuéntame y reviso un libro buenísimo que tengo, pero no lo tengo aquí.
William.
Respuesta
1
Pasa que la ruta especificada no está bien

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas