3 millones en foros del web

Registrarte Políticas Wiki 120segs Ayuda Iniciar sesion

Retroceder   Foros del Web > Programación para sitios web > ASP Clásico
Respuesta
 
Herramientas Desplegado
Antiguo 30-jun-2009, 14:37   #1 (permalink)
monxas (Reg: mayo-2009)
 
96 Mensajes
monxas está desconectado
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....
  Responder Citando
Antiguo 30-jun-2009, 21:11   #2 (permalink)
adiazm (Reg: julio-2008)
 
51 Mensajes
Ubicación: Santiago
adiazm está desconectado
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,
  Responder Citando
Antiguo 01-jul-2009, 04:17   #3 (permalink)
monxas (Reg: mayo-2009)
 
96 Mensajes
monxas está desconectado
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!
  Responder Citando
Antiguo 01-jul-2009, 07:00   #4 (permalink)
Colaborador
Adler (Reg: diciembre-2006)
 
2.583 Mensajes
Adler está desconectado
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
__________________
El odio es un sentimiento demasiado escaso e importante como para malgastarlo
  Responder Citando
Antiguo 01-jul-2009, 07:32   #5 (permalink)
monxas (Reg: mayo-2009)
 
96 Mensajes
monxas está desconectado
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..
  Responder Citando
Antiguo 01-jul-2009, 12:12   #6 (permalink)
Colaborador
Adler (Reg: diciembre-2006)
 
2.583 Mensajes
Adler está desconectado
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
__________________
El odio es un sentimiento demasiado escaso e importante como para malgastarlo
  Responder Citando
Antiguo 01-jul-2009, 17:05   #7 (permalink)
monxas (Reg: mayo-2009)
 
96 Mensajes
monxas está desconectado
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....
  Responder Citando
Antiguo 02-jul-2009, 05:29   #8 (permalink)
Colaborador
Adler (Reg: diciembre-2006)
 
2.583 Mensajes
Adler está desconectado
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
__________________
El odio es un sentimiento demasiado escaso e importante como para malgastarlo
  Responder Citando
Antiguo 05-jul-2009, 08:07   #9 (permalink)
monxas (Reg: mayo-2009)
 
96 Mensajes
monxas está desconectado
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
  Responder Citando
Respuesta
No hay votos aún.
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.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 11:56.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104