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

Problema con ASP y BD (al cambiar de servidor)

Estas en el tema de Problema con ASP y BD (al cambiar de servidor) en el foro de ASP Clásico en Foros del Web. Hola. Tengo un problema, y no se si está bien ponerlo aquí ya que tiene relación con ASP, pero tb con bases de datos. Weno, ...
  #1 (permalink)  
Antiguo 06/03/2006, 08:38
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 19 años, 2 meses
Puntos: 0
Problema con ASP y BD (al cambiar de servidor)

Hola. Tengo un problema, y no se si está bien ponerlo aquí ya que tiene relación con ASP, pero tb con bases de datos.

Weno, os cuento. Donde estoy trabajando llevo una web donde solo tengo acceso a la carpeta de la web en servidor, no puedo configurar yo nada :(. El tema es que hace unos días, cambiaron el servidor, y desde entonces las bases de datos cuando se consultan desde ASP no hay quien las vea. Me dijeron que lo habían configurado todo como en el servidor anterior, pero yo creo que no, ya que debería ir todo igual que antes. Así que me han dicho que el problema está en la web ¿? y no se que hacer.

Estos son los errores que aparecen ahora (primero me da un error "raro")

Cita:
El archivo de inclusión "../jscript/clock.js" no puede utilizar ".." para indicar el directorio primario.
es decir, no me deja usar el ../ para refeir a otra subcarpeta. Weno, pero quitando esta linea es donde empiezan los problemas con ASP y BD que es lo que me interesaría resolver ante todo

Cita:
Error de Microsoft VBScript en tiempo de ejecución error '800a000d'

No coinciden los tipos: 'Nav_Bar_BD'
y la línea a la que hace referencia es:

Cita:
<% Nav_Bar_BD "HW1","" %>
Se me ha ocurrido quitar esta linea a ver el error que daba, y es el siguiente:

Cita:
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
la línea hacia la que hace referencia es:

Cita:
oConn.Open "DSN=BD"
lo que me pregunto ahora es si puede ser que no hayan configurado bien las DSN o si realmente el problema lo tengo que solucionar yo desde asp... no se que hacer :(

============================================

Uso BD Access por si sirve de algo. Todo iba bien hasta el cambio de servidor

Gracias

Última edición por laguna2k; 06/03/2006 a las 08:42 Razón: cambiar titulo
  #2 (permalink)  
Antiguo 06/03/2006, 08:55
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
El primer error definitivamente es cosa del servidor, pero no del todo malo, ya que no es bueno permitir acceso a direcciones relativas. Si cambias la carpeta de scripts a dentro del server se arregla, pero los pueden acceder desde el exterior, unas por otras.

Por lo del error de que no coinciden los tipos, para contestarte debería de saber que hay dentro de la función Nav_Bar_BD, si pudieras postearlo sería útil.

Saludos
  #3 (permalink)  
Antiguo 06/03/2006, 09:25
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 19 años, 2 meses
Puntos: 0
Nav_Bar_BD lo que hace es imprimir la barra de navegacion basandose en los parametros que le pasa la correspondiente página y los valores de las variables de aplicacion almacenadas en GLOBAL.ASA (archivo al que ahora tampoco puedo acceder por que no me han dado los privilegios suficientes :(

Parametros:
menu -> Cadena de caracteres con los nombres de las variables de aplicacion y el link a la pagina desde el path base.
text -> texto que se puede añadir al final de sin que apunte a ninguna pagina.

Cita:
Sub Nav_Bar_BD(menu,text)

dim texto ' Letra en tratamiento
dim num_letras ' Longitud de la cadena
dim pack ' Conjunto TEXTO & NOMBRE_LINK

' Obtener longitud de la cadena
num_letras = len(menu)

' Para cada letra obtener el texto y link correspondiente
For i = 0 To (num_letras-1)
' Obtener letra por letra
texto = Mid(menu,i+1,1)

' Omitir imagen antes del primer texto
if (i <> 0) then
response.write "<span class='divise'><img src='"& Application("Servidor") & "images/arrow.gif' border='0' width='7' height='13' align='bottom' />&nbsp;</span>"
else
end if
' Las componentes se separan
pack = split( Cstr(Application(texto)),"&")

response.write "<a href='"& Application("Servidor") & pack(1) & "' class='lien'>"
response.write "&nbsp;&nbsp;" & pack(0) & "</a>&nbsp;"

Next
' Ignoramos el segundo parametro cuando es vacio
if (text<>"") then
response.write "<span class='divise'><img src='"& Application("Servidor") & "images/arrow.gif' border='0' width='7' height='13' align='bottom' />&nbsp;</span>" & "<a href='#' class='lien'>"
response.write text & "</a>&nbsp;"
else

end if

end Sub
PD: en teoria la función está bien, antes del cambio de servidor todo funcionaba a las mil maravillas

Gracias.

Saludos
  #4 (permalink)  
Antiguo 06/03/2006, 09:39
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cierto, la función esta bien, y por el tipo de error, creo suponer que el problema es por que no han habilitado las sessiones en el IIS, truena al intentar acceder a la variable Application("Servidor").

Solo para comprobar que este es el error, cambia Application("Servidor") por alguna constante, si el sitio vuelve a funcionar definitivamente tienen que moverle al IIS.

Saludos

PD. Para lo del DSN, intenta conectarte por OLEDB en vez de ODBC
  #5 (permalink)  
Antiguo 06/03/2006, 10:02
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 19 años, 2 meses
Puntos: 0
sigue sin ir cambiando lo de Aplication(servidor) por una constante :(
  #6 (permalink)  
Antiguo 06/03/2006, 10:13
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Para mi el error...

Cita:
Error de Microsoft VBScript en tiempo de ejecución error '800a000d'

No coinciden los tipos: 'Nav_Bar_BD'
... significa que no se está encontrando la SUB Nav_Bar_BD.
¿Será tal vez porque haya estado en un archivo include que deshabilitaste por contener los caracteres "../"?

Con respecto al primer error, lo solucionás de 2 maneras:
1- Modificando la configuración del IIS para que acepte "rutas primarias"
2- Haciendo en tus scripts todos los includes VIRTUAL en vez de FILE
__________________
...___...
  #7 (permalink)  
Antiguo 08/03/2006, 02:49
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 19 años, 2 meses
Puntos: 0
Aun no consigo que vaya :(

Lo de los includes los tengo puestos así:

Cita:
<!--#include virtual="web/jscript/clock.js"-->
Cita:
<!-- #virtual file="web/menus/menulateral.asp" -->
en este último es donde se encuentra la función que he puesto antes 'Nav_Bar_BD'

antes los tenía puestos con "../jscript/clock.js" y el otro con "../menus/menulateral.asp" y lo he cambiado para evitar lo del primer error. Y cambiando esto es cuando aparece el error 2:

Cita:
Error de Microsoft VBScript en tiempo de ejecución error '800a000d'

No coinciden los tipos: 'Nav_Bar_BD'
Gracias.

Saludos
  #8 (permalink)  
Antiguo 08/03/2006, 06:20
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 19 años, 2 meses
Puntos: 0
Creo que he avanzado algo ^^ (por un error un poco tonto quizá ^^U)

He cambiado:
Cita:
<!-- #virtual file="web/menus/menulateral.asp" -->
por

Cita:
<!-- #include virtual="web/menus/menulateral.asp" -->
y ahora lo que es el diseño ya lo coje bien y todo, aparece la página normal. Sólo aparece un error de BD en la parte de arriba de la página

Cita:
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
como el que puse en el primer mensaje, y la linea a la que hace referencia es la que pongo en negrita:

Cita:
<%
dim count
'Crear objetos conexion y recordset
Set oConn = Server.CreateObject("ADODB.Connection")
Set oRs = Server.CreateObject("ADODB.Recordset")

'Abrir conexion y tabla contactos
oConn.Open "DSN=BD"
La verdad es que esto no se muy bien como funciona, el error es porque DSN=BD no encuentra nada que se llame BD? que sería una especie de redireccionador de la Base de datos? si es eso como se crearía o donde?

Nota: Un dato importante es que hasta ahora no mostraba la página, sólo un error y ahora si que se muestra, lo unico que no muestra son los datos que debería cojer de la Base de Datos y un error arriba.

He pedido acceso al global.asa a ver ahí dentro es donde tengo que modificar algo, ya que otro dato que se cogía de ahí me he dado cuenta de que está mal, no se si por el cambio de servidor habrán cogido una versión antigua del global.asa

Gracias

Saludos
  #9 (permalink)  
Antiguo 08/03/2006, 08:27
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cita:
...
PD. Para lo del DSN, intenta conectarte por OLEDB en vez de ODBC
Saludos
  #10 (permalink)  
Antiguo 08/03/2006, 09:10
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Así es seguramente no crearon los DSN, pero que pesados eh? lo bueno es que habían dejado la configuración anterior...ahora me quiero imaginar lo malo

Bueno, aquí encuentras las conexiones:

www.connectionstrings.com

Veo que todo el equipo se ha puesto las pilas para resolver este problema , ya cuando termines les mandas las birritas


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 09/03/2006, 09:01
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 19 años, 2 meses
Puntos: 0
xDD

Weno, esto parece que va mejorando. He cambiado para conectarse sin DNS, he puesto esto:

Cita:
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bd/BD.mdb")
he provado con otras y esta es la única que funciona... pero no del todo ^^U

Si lo pongo la página en el raiz de la web, funciona perfectamente... pero no es ahí donde tiene que ir ^^. Esta pagina en cuestión está en una subcarpeta, si cojo la página que en el raiz va bien y la pongo en la subcarpeta, no va (los enlaces que hay en la pagina si van), da el siguiente error:

Cita:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Controlador ODBC Microsoft Access]Error general No se puede abrir la clave 'Temporary (volatile) Jet DSN for process 0xc60 Thread 0x740 DBC 0x2021024 Jet' del Registro.
Explicaré un poco lo que hace la página

Primero obtiene de la BD los nombres de personas y los pone en la pagina (esto ya funciona desde la página poniendola en el raiz, pero no funciona si se pone la pagina en una subcarpeta, cosa que no entiendo porque la verdad :(

Los nombres de las personas son enlaces, que lo que hace es crear un pequeño pop up con varios datos que ya ha cogido de la Base de Datos y los muestra. Creo que aquí se vuelve al problema de antes, ya que la pagina que genera el pop up está en un subcarpeta y da el mismo erro de arriba:

Cita:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][Controlador ODBC Microsoft Access]Error general No se puede abrir la clave 'Temporary (volatile) Jet DSN for process 0xc60 Thread 0x740 DBC 0x2021024 Jet' del Registro.
y la linea es la de conexión con la Base de Datos:

Cita:
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bd/EEGECS.mdb")
Help!

Saludos
  #12 (permalink)  
Antiguo 09/03/2006, 09:24
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Este es un clásico error de permisos, el folder que contiene la base de datos, deberá tener permisos de escritura y lectura para el usuario que utiliza el IIS, segúramente el folder raiz si tiene dichos permisos, no hay mucho que se pueda hacer mediante ASP.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 10/03/2006, 03:33
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 19 años, 2 meses
Puntos: 0
Solucionado!!!!

Finalmente era problema de la conexión a la Base de Datos (un error de esos que suelen decirse que son mu tontos, pero que no me di cuenta ^^U).

Dejo aquí la solución por si alguna vez a alguien le pasa:

Para solucionar lo del error que no deja utilizar ".." para indicar el directorio primario se soluciona cambiando los includes a Virtual en lugar de File. Por ejemplo:

Cita:
<!-- #include virtual="/web/menus/menulateral.asp" -->
El siguiente error era que antes realizaba la conexión con DNS, y en el nuevo servidor no había ninguna creada, así que había que hacer la conexión sin DNS:

Cita:
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bd/BD.mdb")
pero así solo iba en la página cuando estaba en el directorio raiz del servidor.

Yo creia que al poner lo de Server.MapPath("bd/BD.mdb") accedieras desde el directorio que accedieras, el sabía que tenía que acceder a la carpeta bd que está en el raiz del servidor, pero no ^^, hay que poner la ruta completa:

Cita:
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/web/bd/BD.mdb")
y wala! cambiando esa linea en todas las páginas ya va todo!

Solo queda decir que MUCHAS GRACIAS a todos por la ayuda, yo sólo hubiera sido imposible solucionar los problemas

Gracias!!

Saludos
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 22:17.