La Web del Programador: Comunidad de Programadores
 
    Pregunta:  62999 - PROBLEMAS CON RUTA A BASE DE DATOS EN DELPHI
Autor:  Miguel Gutierrez
Hola, soy principiante en el trabajo con delphi 7y bases de datos en access. Quisiera saber como obtener la ruta a la base de datos de access en la pc donde en la que trabajo. En el AdoConection especifico la ruta de la BD y trabaja pero al llevar el proyecto a casa y abrir me da error de conexion.¿Como hacer para que detecte donde está la BD y asuma la nueva ruta para poder trabajar en cualquier pc?

  Respuesta:  Luis Felipe García Gutiérrez
Para que busque la ruta sistemáticamente la aplicación se debería implementar un algoritmo de busqueda de archivos, pero ésto generaría 2 inconvenientes. El primero: si el disco es muy grande, y/o el procesador muy lento la aplicación se tardará demasiado en buscar el archivo y el segundo que si tiene una copia de la BD en alguna parte del disco duro, la aplicación con qué creiterio la ignorará y continuará la búsqueda de la real, cómo hará para diferenciarlas?

Entonces la sugerencia es que en un archivo plano se cargue la ruta de la BD y éste se aloje en la misma parte desde donde se ejecute la aplicación, de forma tal que si cambia la ubicación de la BD cambia sólo sea necesario actualizar el archivo y no el código fuente.

Suerte!!

  Respuesta:  Luis Felipe García Gutiérrez
Lo que se podría hacer en éstos casos es utilizar algorítmos de búsqueda de archivos, pero esto deja dos inconvenientes; el primero es que demora demasiado la ejecución de la aplicación la primera vez que se ejecute, con el agrabante que si se tiene una copia de la BD en otro lugar del equipo la aplicación no tendrá forma de diferenciar cúal debe tomas.

Lo mas recomendable es tener la ruta de la BD en un archivo plano el cual debes apuntar siempre al mismo lugar, éste archivo se debería actualizar cada vez la BD cambie de ubicación, así la aplicación es incensible a éstos cambios y al momento de sufrir alguno no se requiere tocar código fuente.

Suerte y saludos.