PDA

Ver la Versión Completa : Intraweb: Acceso a la bd en el servidor


Brewster
21-04-2004, 18:48:12
Hola a todos.-

Mi pregunta es la siguiente.-

desde Intranet me creo un componente ADOConnection y en sus datos de configuración apunta a una base de datos en Access.

Dicha bd se encuentra en otra carpeta, por tanto para acceder a ella en la propiedad DataSource de ese componente pongo: ../../data/bdPrueba.mdb

En local funciona todo perfectamente y no da ningún problema.

Ahora bien, quiero ejecutar todo esto en mi servidor de Internet, me creo una dll a la que llamo prueba.dll, y la subo a una carpeta del Servidor de Internet.

Y me el error de que no encuentra la bd en c:\winnt\data\bdPrueba.mdb

¿Cual es la forma de indicar, para ejecutar en Internet, que la BD se encuentra en una carpeta distinta?

Muchas gracias

jachguate
21-04-2004, 21:52:45
Porque no indicas la ruta completa de la bd??

'c:\carpeta\bdPrueba.mdb'.

La ruta relativa (como la que indicas) será relativa a la ruta "actual" donde se ejecuta la aplicación, que en tu caso, supongo, estará dictada por el servidor web que carga la dll. Eso es algo "peligroso", ya que es algo que no está bajo tu control. Para que la ruta no quede codificada en tu programa y sea algo mas dinámico, podes dejarla en un archivo ini o leerla del registro antes de conectarte a la bd.

Hasta luego.

;)

Brewster
22-04-2004, 10:20:15
No puedo poner la ruta exacta donde se encuentra la bd porque en mi ordenador local se cual es exactamente, pero en el servidor en Internet no lo se, se que la guardo en una carpeta llamada data que se encuentra en dos carpetas "para atrás" de donde se ejecuta la Dll.


Por eso utilizo lo de "../../data/bdPrueba.mdb", para acceder así siempre tanto en local (que no sería necesario pues conozco el camino exacto) como en Internet (que no conozco ese camino), pero se su ubicación.

Debe haber alguna manera de indicarle en que carpeta se encuentra exactamente.

De todos modos muchas gracias por tu respuesta.

tcp_ip_es
22-04-2004, 10:31:09
Si el servidor que te sirve tus páginas es tuyo, la solución como dice jachguate es poner la ruta entera. En caso de que tu no controles el servidor, habla con el administrador para que te diga la ruta fisica del archivo mdb, o simplemente prueba con los directorios comunes como por ejemplo en un IIS sería algo tal que asi: c:\inetpub\wwwroot\data\bdprueba.mdb

Saludos, Tony

jachguate
22-04-2004, 17:35:41
como te decia, el problema es que al ejecutarse la dll en el servidor, su directorio "actual" no será el directorio donde se encuentra la dll... seguramente será el directorio "actual" del webserver, no se si será valido en el caso de ISAPI/NSAPI, pero podes intentar averiguar la ruta imprimiendo en una de tus páginas el valor de paramstr(0).

Hasta luego.

;)