Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Enlazar con base de datos este donde este (https://www.clubdelphi.com/foros/showthread.php?t=39130)

4-0 11-01-2007 11:19:20

Enlazar con base de datos este donde este
 
En primer lugar un saludo a toda la gente del foro.

He realizado un proyecto con builder en el que uso una base de datos y funciona perfecto.Enlazo con la base de datos a traves de un TADOTable.

El problema es que si la base de datos de Access se encuentra en una carpeta distinta a la que yo he fijado en la propiedad "ConnectionString" del componente ADO;no funciona.Algo evidente.

Mi pregunta es:¿como puedo enlazar el componente TADOTable con la base de datos Access independientemente del directorio en la que se encuentre?.

Muchas gracias y un saludo a todos.

Bicho 11-01-2007 17:11:13

Hola, bienvenido al Clubdelphi.

Respecto a tú duda, no lo acabo de entender. La base de datos debe estar en un sitio fijo, no la vas a estar moviendo constántemente, no?
Lo que puedes hacer es guardar la ruta de la base de datos en un fichero de configuración, para ello puedes usar ficheros .INI, si buscas en el foro y en la ayuda de Builder encontrarás mucha info al respecto.
Pero eso de coger la BD esté donde esté, me suena a arriesgado, ya que lo único que se me ocurre, es usar una función de búsqueda de ficheros (sabiendo obviamente el nombre del fichero .mdb de tú base de datos) y que busque en el PC, cuando la encuentre obtendrás la ruta y se la pasas al ConnectionString.
Pero digo arriesgado, porque puede que en mismo pc donde esté la BD, tengas muchas copias de esa BD a modo de backup o versiones antiguas, con lo cual podría inducir a que cogieras el fichero que no toca.

Espero te sirva.

Saludos

4-0 12-01-2007 17:06:25

Ante todo muchas gracias por tu ayuda Bicho.

La pregunta la hacia,porque en mi proyecto haria un instalador para darselo a mi tutor de proyecto o a la gente que le interese,por lo tanto ellos pueden instalar el programa y el fichero .mdb donde quieran,en consecuencia se cambia el lugar en donde este el fichero .mdb;dependiendo de cada usuario.

En ese caso deberia de localizar la carpeta donde este el archivo y asignarselo a la propiedad "ConnectionString".

Muchas gracias de nuevo.

Bicho 12-01-2007 17:41:48

Pues si desde el instalador das opción a elegir donde guardar la BD, esa ruta la puedes guardar en algún fichero, entiendo, ¿no? Luego recuperas esa info en Delphi abriendo el fichero y usando esa ruta como ConectionString.
No se que programa usas como instalador, pero creo que el InnoSetup te permite guardar esa info en algún fichero, como te comenté antes, de tipo INI.

Espero te sirva.

Saludos

Gelmin 12-01-2007 19:14:30

Utiliza archivos .udl u obtene la direccion de tu .exe
 
Bueno amigo las indicaciones q te han dado son correctas, pero hay otras formas tambien, por ejemplo yo uso archivos de enlace como son los *.udl que son sencillos de utilizar y de crear y la otra forma mas facil es poner la base de datos en el mismo lugar que tu aplicacion y luego en el codigo hay una funcion para obtener la ruta de tu ejecutable que creo que se llama (ExtractFileDir o extractFilePath) y se la pasas a tu Conectionstring indicando que ahi esta tambien la bd asi en cualquier lugar q pongas tu app con tu BD juntos siempre la encontrara. Espero te sirva de algo Gel (Nicaragua)

4-0 12-01-2007 20:33:00

Muchas gracais a los dos.Ahora toca probar a ver cual me sale mejor.

Un saludo people.


La franja horaria es GMT +2. Ahora son las 08:41:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi