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

Problema con Server.MapPath

Estas en el tema de Problema con Server.MapPath en el foro de ASP Clásico en Foros del Web. Hola, tengo un problema con la ruta de mi base de datos. La situacion es esta: Mi web esta en C:\Inetpub\wwwroot\MISITIO\ Tengo el archivo conexiondb.asp ...
  #1 (permalink)  
Antiguo 28/03/2008, 03:57
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Pregunta Problema con Server.MapPath

Hola, tengo un problema con la ruta de mi base de datos. La situacion es esta:

Mi web esta en C:\Inetpub\wwwroot\MISITIO\

Tengo el archivo conexiondb.asp ubicado en C:\Inetpub\wwwroot\MISITIO\ y este es su codigo:

Código PHP:
Dim adoCon
Set adoCon 
Server.CreateObject ("ADODB.Connection")
adoCon.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" Server.MapPath("\MISITIO\dbgeneral.mdb"
Mediante un include agrego conexiondb.asp a un archivo ubicado en C:\Inetpub\wwwroot\MISITIO\

Código PHP:
<!--#include file="conexiondb.asp"--> 
Y esto funciona bien, tengo acceso a la base de datos...

...Pero si hago lo siguiente:
Mediante un include agrego conexiondb.asp a un archivo ubicado en C:\Inetpub\wwwroot\MISITIO\admin\

Código PHP:
<!--#include file="..\conexiondb.asp"--> 
..No funciona!

No puedo acceder a la base de datos.

Lo que me resulta extraño es que si yo pongo directamente el codigo que contiene el archivo conexionbd.asp en un archivo ubicado en C:\Inetpub\wwwroot\MISITIO\admin\ si funciona!!

Y poner rutas estrictas no me va a servir porque no me va a funcionar cuando lo suba al servidor.

Por eso les pido una ayudita! Espero haber sido lo suficientemente claro!
  #2 (permalink)  
Antiguo 28/03/2008, 04:02
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Re: Problema con Server.MapPath

Trate de sacar un poco de informacion de aca: http://www.w3schools.com/asp/met_mappath.asp pero sigo en la misma... no encuentro la solucion.
  #3 (permalink)  
Antiguo 28/03/2008, 06:51
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Re: Problema con Server.MapPath

Hola

Solo has de escribir

<!--#include file="../conexiondb.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;" />
  #4 (permalink)  
Antiguo 28/03/2008, 08:48
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Problema con Server.MapPath

Me hubiera gustado ver el error
  #5 (permalink)  
Antiguo 28/03/2008, 09:28
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Problema con Server.MapPath

ha de ser por el Server.MapPath


yo termine haciendo una pagina conexion dentro de mi admin que tuviera

Server.MapPath("..\talcosa

jejejeje
__________________
JuanRa Pérez
San Salvador, El Salvador
  #6 (permalink)  
Antiguo 28/03/2008, 15:33
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Re: Problema con Server.MapPath

Cita:
Iniciado por JuanRAPerez Ver Mensaje
ha de ser por el Server.MapPath


yo termine haciendo una pagina conexion dentro de mi admin que tuviera

Server.MapPath("..\talcosa

jejejeje
Claaro!!, y eso es justamente lo que yo no quiero jajaja, no quiero crear otra pagina que haga referencia a la conexion a la base de datos en la carpeta admin, por esots motivos:

No quiero tener una chorrera de archivos, me gusta ser organizado.
Trato de que la ubicacion de la base de datos este lo menos expuesta posible
El dia que tenga que cambiar de base de datos, solo lo hago en una linea de codigo en UN archivo.
Y lo mas importante... no me puede ganar esto, tiene que haber alguna solucion!! jajaja

En un rato subo cual es el error que me tira
  #7 (permalink)  
Antiguo 28/03/2008, 15:48
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Re: Problema con Server.MapPath

Tipo de error:

ADODB.Recordset (0x800A0BB9)
Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.
/compured/admin/check.asp, línea 43

y la linea 43 es la que les marco en rojo:

<!--#include file = "..\conexiondb.asp"-->
Set rsCheck = Server.CreateObject("ADODB.Recordset")
sSQL="SELECT usuario,password FROM tblusuarios WHERE usuario ='" & sUsername & "' AND password ='" & sPassword & "'"
rsCheck.Open sSQL, adoCon

La UNICA forma que tengo para que ande es poner la conexion directamente en el archivo que se quiere conectar, no en un include:

Dim adoCon
Set adoCon = Server.CreateObject ("ADODB.Connection")
adoCon.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../dbgeneral.mdb")
Set rsCheck = Server.CreateObject("ADODB.Recordset")
sSQL="SELECT usuario,password FROM tblusuarios WHERE usuario ='" & sUsername & "' AND password ='" & sPassword & "'"
rsCheck.Open sSQL, adoCon

Intente hacer lo que dice JuanRAPerez; crear un nuevo archivo para incluir que se ubique dentro de la carpeta admin:

Este el el codigo de conexionadmin.asp

Código PHP:
Dim adoCon
Set adoCon 
Server.CreateObject ("ADODB.Connection")
adoCon.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" Server.MapPath("../dbgeneral.mdb"
Y asi es como lo llamo:

Código PHP:
<!--#include file = "conexionadmin.asp"-->
Set rsCheck Server.CreateObject("ADODB.Recordset")         
sSQL="SELECT usuario,password FROM tblusuarios WHERE usuario ='" sUsername "' AND password ='" sPassword "'" 
Pero me tira el error que mas arriba les dije tambien.

Esto es raro...
  #8 (permalink)  
Antiguo 28/03/2008, 16:15
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Re: Problema con Server.MapPath

Googleando encontre esto:

ADODB.Recordset error '800a0bb9'
La aplicación está usando argumentos incorrectos, o están fuera del intervalo permitido, o entran en conflicto con otros.
/error/1.asp, line 3

Explicación y posible solución:
Varios posibles errores.
Podria estar intentando abrir una tabla, sin referenciar la conexion que se debia crear anteriormente.

Otros errores similares que encontre:

http://www.forosdelweb.com/f15/urgente-funciones-asp-bases-datos-234372/

http://www.forosdelweb.com/f15/recordset-argumentos-incorrectos-205036/
  #9 (permalink)  
Antiguo 28/03/2008, 17:11
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Problema con Server.MapPath

Si observas, tienes el error no al abrir la conexion, sino cuando abres la tabla. Seguro tu sentencia esta mal.

De todas formas, hice una prueba rápida y funciona sin problemas el include.

Test.asp (esta en c:\wwwroot\mispruebas\borrame):
Código:
<!--#include virtual="/mispruebas/conexion.asp"--> 

<%
Set rsCheck = Server.CreateObject("ADODB.Recordset")
sSQL="SELECT * FROM Customers"
rsCheck.Open sSQL, adoCon

response.write "Info de la tabla: " & rsCheck(0)  
%>
conexion.asp (esta en c:\wwwroot\mispruebas\)
Código:
<%
Path = Request.ServerVariables("PATH_TRANSLATED")
Path = MID(Path,1,InStrRev(path,"\")-1)
Path = MID(Path,1,InStrRev(path,"\")-1)

strCon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/mispruebas/Northwind.mdb")
'strCon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Path & "/Northwind.mdb"
Set adoCon = Server.CreateObject ("ADODB.Connection")
adoCon.open StrCon
%>
Y todo funciona OK.

En el include hice pruebas con el MapPath y con una simple variable con la ruta. Todo sin problemas.

Saludos
  #10 (permalink)  
Antiguo 28/03/2008, 17:35
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Re: Problema con Server.MapPath

Sigue sin funcionarme... Una pregunta... como hago para Debugear?
Osea... yo en VisualBasic podia ir instruccion por instruccion para ver para donde estaba llendo con las llamadas o frenarme antes de determinada linea...
Aca tambien se puede hacer eso?
  #11 (permalink)  
Antiguo 28/03/2008, 18:02
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Re: Problema con Server.MapPath

Ya encontre el error!!!

Y era un error muuuy tonto...

Yo ponia el include adentro de los tags "<%" "%>" y este debe ir afuera de ellos...




Bueno... gracias igual por la ayuda, esto me sirve de leccion! jajaja
  #12 (permalink)  
Antiguo 31/03/2008, 14:51
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Problema con Server.MapPath

Cita:
Iniciado por i_e_s27 Ver Mensaje
...
No quiero tener una chorrera de archivos, me gusta ser organizado.
Trato de que la ubicacion de la base de datos este lo menos expuesta posible
Y lo mas importante... no me puede ganar esto, tiene que haber alguna solucion!! jajaja
...
y al final te gano o lo hiciste en archivos diferentes?
__________________
JuanRa Pérez
San Salvador, El Salvador
  #13 (permalink)  
Antiguo 01/04/2008, 03:43
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Re: Problema con Server.MapPath

Cita:
Iniciado por JuanRAPerez Ver Mensaje
y al final te gano o lo hiciste en archivos diferentes?
Al final encontre el error (No me ganó!! ), tengo un solo include donde sale la ubicacion de la base de datos. La llamo desde cualquier lado dentro de mi sitio y funciona OK.

Como dije mas arriba, el error que me daba

Cita:
Set rsCheck = Server.CreateObject("ADODB.Recordset")
sSQL="SELECT usuario,password FROM tblusuarios WHERE usuario ='" & sUsername & "' AND password ='" & sPassword & "'"
rsCheck.Open sSQL, adoCon
Se debia a que yo ponia el include dentro de los tags de ASP (<%%>) y este debe ir fuera de ellos, asi:

Cita:
%><!--#include file = "..\conexiondb.asp"--><%
Fue un error muy tonto pero dificil de ver...

Gracias por tu interes!
  #14 (permalink)  
Antiguo 01/04/2008, 08:30
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Problema con Server.MapPath

ok, me alegra.


Suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
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 16:12.