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

error con base de datos access

Estas en el tema de error con base de datos access en el foro de ASP Clásico en Foros del Web. A ver, estoy empezando con asp, asi que no estoy seguro de qué puede ser importante y que no, asi que os cuento mucho: tengo ...
  #1 (permalink)  
Antiguo 30/06/2009, 13:37
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años, 11 meses
Puntos: 9
Pregunta error con base de datos access

A ver, estoy empezando con asp, asi que no estoy seguro de qué puede ser importante y que no, asi que os cuento mucho:

tengo vista x64
He instalado el IIS 7

para configurar el controlador ODBC ya he visto que al ser de 64 bits hay que ir al sysWOW64, y tal. le pongo un dsn a mi base de datos.

me gustaria crear en el global.asa una variable de aplicacion tal que asi:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Application_OnStart


set application("conn") = Server.CreateObject("ADODB.Connection")
application("conn").Open "proyectos"
...
y al cargar la portada de la web me muestra este error:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado

/LM/W3SVC/1/ROOT/global.asa, línea 9



He probado a hacerlo sin dsn
set application("conn") = Server.CreateObject("ADODB.Connection")

application("conn").Open "Driver=Microsoft Access Driver (*.mdb);" & _
"DBQ=C:\inetpub\wwwroot\Db\Proyectos.mdb;"
.......



y me da el mismo error:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado

/LM/W3SVC/1/ROOT/global.asa, línea 8



como me parecio raro probe a subirlo directamente a un servidor con asp y access gratuito.

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

SUB Application_OnStart


set application("conn") = Server.CreateObject("ADODB.Connection")

application("conn").Open "DRIVER=Microsoft Access Driver(*.mdb);DBQ=" & Server.MapPath("/libros/Db/Proyectos.mdb")
siguiendo sus faq la ruta de la base de datos tiene que ir ahi para que rule.

entonces la cosa cambia un poco. me carga la portada, que en realidad solo es un login, pero luego al enviar el formulario y redirigir a la pagina donde manejo la accion de loguearse y comprobar que corresponde me sale este otro error

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

/libros/athenea/alpha/admin/admin_entrar.asp, line 5
que es el mismo pero en ingles....

de momento lo que tengo en esa pagina es:

<%
user = Request.Form("user")
clave = Request.Form("clave")

m_str_sql = "SELECT * FROM TUsuario where login=" & user & " and clave=" & clave
response.write (m_str_sql)
set rs= application("conn").Execute(m_str_sql)



%>


No se porque pasa, he estado toda la mañana googleando y no veo el fallo....
  #2 (permalink)  
Antiguo 30/06/2009, 20:11
Avatar de adiazm  
Fecha de Ingreso: julio-2008
Ubicación: Santiago
Mensajes: 51
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: error con base de datos access

Prueba la conexión de esta manera:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=C:\Inetpub\vhosts\nombre_de_tu_sitio_web\nombre_de _tu_db.mdb"

o la ruta absoluta que quieras darle a tu base.

Por otra parte, es necesario que la validación la realices de esta manera:

<%
user = Request.Form("user")
clave = Request.Form("clave")

m_str_sql = "SELECT * FROM TUsuario where login='" & user & "' and clave='" & clave&"'"
set CualquierValor= Conn.Execute(m_str_sql)

%>

Es necesario que tengas en claro que el nombre de usuario y clave se ingresan con comillas simples ('') al ser valor char (texto o memo en el caso del access). Además, no es necesario realizar la conexión en el global.asa ya que es poco seguro para prevenir que miren tu base. Lo ideal es realizar esta conexión en una página .asp simple, y después realizarle el include necesario en la página que tendrá conexión a la db, incluyendo este script:
Código:
<!--#include virtual="/carpeta_donde_esta_el_archivo/conexion.asp" -->
Lógicamente puede llamarse como tu quieras, pero siempre es necesario que incluyas el slash "/" al principio de la ruta, ya que esto determina el root del sitio, además de evitar tener que copiar en cada carpeta el mismo archivo y llamar el include con un file en vez de virtual.


Espero te sirva y ayude bastante en tu trabajo...

El asp es bonito, solo si sabes interpretarlo y jugar con Él.

un abrazo,
  #3 (permalink)  
Antiguo 01/07/2009, 03:17
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años, 11 meses
Puntos: 9
Respuesta: error con base de datos access

Muchas, muchas gracias por contestar!

Ya he reestructurado todo commo me has recomendado, el problemas que tengo ahora es:




ADODB.Connection error '800a0e7a'

No se encontró el proveedor especificado. Es posible que no esté instalado correctamente.

/athenea/alpha/admin/conexion.asp, l�nea 3



el conexion.asp es:



<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=DBQ=C:\inetpub\wwwroot\Db\Proyectos.mdb"
%>


el problema es que tengo vista x64, y por lo que he mirado ahora no hay jet para 64 bits...
hay alguna otra forma de hacer la conexion?

otra cosa que no tengo clara, que diferencias hay entre "include file" e "include virtual"?

Siempre he usado include file.

muchas muchas gracias!
  #4 (permalink)  
Antiguo 01/07/2009, 06:00
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: error con base de datos access

Hola

Prueba con ODBC

En cuanto a qué diferencia hay entre un include file o virtual. Con el virtual tendrás acceso a ese include desde cualquier sitio de tu web, solo has de guardar el include en el root.

Nivel con respecto al root

<!--#include virtual="/include.asp"-->
<!--#include virtual="/include.asp"-->

Mientra que con file

<!--#include file="/include.asp"-->
<!--#include file="/nivel2/include.asp"-->

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 01/07/2009, 06:32
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años, 11 meses
Puntos: 9
Respuesta: error con base de datos access

gracias con lo de virtual!

con odbc me da este error:



Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado

/athenea/alpha/admin/conexion.asp, l�nea 4

mi conexion.asp es asi y ninguna de las formas que ahi salen ha funcionado:


<%
Set Conn = Server.CreateObject("ADODB.Connection")
'Conn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=DBQ=C:\inetpub\wwwroot\Db\Proyectos.mdb"'
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\inetpub\wwwroot\Db\Proyectos.mdb"

'Conn.Open "DRIVER=Microsoft Access Driver(*.mdb);DBQ=" & Server.MapPath("/libros/Db/Proyectos.mdb")'
%>

la ultima es en el servidor gratuito que estoy usando... ya no se que hacer..
  #6 (permalink)  
Antiguo 01/07/2009, 11:12
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: error con base de datos access

Hola

He encontrado esto

Cita:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager]Data source name not found and no default driver specified.

This usually happens in one of the following scenarios:

* you referenced your connection incorrectly (e.g. spelled the DSN name, or one of the DSN-less string components wrong);
* you referenced a DSN that doesn't exist;
* the user connecting to the DSN or DSN-less connection doesn't have access to the information stored in the registry (see KB #306345);
* you used an English or localized driver detail for your connection string when your system is not set up in that language (see KB #174655); or,
* you are missing the connection string entirely (this can happen if you maintain your connection string in a session variable, and your sessions aren't working; see Article #2157).
Documentación obtenida de aquí

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 01/07/2009, 16:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años, 11 meses
Puntos: 9
Respuesta: error con base de datos access

Gracias por contestar.

Volvi a revisar punto por punto lo que has puesto (creo que dimos con la misma pagina) y el resultado es:

-la base de datos esta en la ruta correcta, y la ruta esta perfecta....
-no va por dsn, asi que nada
- no tengo ni idea de a que se refiere, pero creo que si fuese eso al subirlo al servidor deberia funcionar perfectamente, ya que ellos si que lo tendran bien configurado.
-no estoy seguro de como abordar esa
-No va por variables, va a pelo....
  #8 (permalink)  
Antiguo 02/07/2009, 04:29
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: error con base de datos access

Hola

Fijate en esta te faltan las llaves

'Conn.Open "DRIVER={Microsoft Access Driver(*.mdb)};DBQ=" & Server.MapPath("/libros/Db/Proyectos.mdb")'

De cualquier modo, bien sea en tu servidor en internet o en tu IIS, lo que has hacer es usar rutas virtuales y OLEBD

¿Qué access estás usando?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 05/07/2009, 07:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años, 11 meses
Puntos: 9
Respuesta: error con base de datos access

perdonad por no responder, muchas gracias a todos.

al final estoy probando directamente en el servidor, que al final es lo que he conseguido funcione.

mi access es 2007, pero la base de datos es 2003.

Con vista x64 no he podido enganchar la base de datos mdb a mi servidor local, todo lo que he visto por ahi es que jet no rula ni rulará con x64, y el otro modo tampoco funcionó, ni con dsn ni sin el.

Si alguien supiese como hacerlo le estaria eternamente agracecido, aunque yo desistí.

Gracias
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 06:27.