Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Instalar en directorio diferente (https://www.clubdelphi.com/foros/showthread.php?t=1620)

Tomás 20-06-2003 20:17:08

Instalar en directorio diferente
 
He instalado una aplicación con una base de datos InterBase y solo me funciona si la instalo en un directorio (carpeta) con la misma ruta y nombre que el que tenía en mi ordenador (no es de red).

¿Qué hay que hacer para que funcione en cualquier disco y/o carpeta?.

No se si tendrá importancia que lo he instalado con QSetup, un instalador gratis para desarrolladores independientes, y aunque está en inglés, la instalación la genera en español (entre otos muchos idiomas).

Un saludo. Tomás

jachguate 20-06-2003 20:40:15

Supongo que lo que te ocurre es que tenes la ruta completa a tu base de datos, por eso te funciona solamente en la misma carpeta.

Digamos que tenes la base de datos en "C:\desarrollo\misistema\data\datos.gdb",

Podes hacer que la ruta sea relativa al abrir el sistema, digamos teniendo la base de datos solo en

".\data\datos.gdb".

No puedo decirte exactamente como porque no mencionas con que te conectas a la base de datos, ni cuales parámetros de conexión estás utilizando.

Hasta luego.

;)

AdrianD 20-06-2003 21:23:20

Puede ser que las tablas o la conección esten abiertas en tiempo de diseño, al ejecutarse el programa ira a buscar los datos en el directorio donde apunta en diseño antes de cargarse, si existen, los parametros de la conección y por eso solo funciona con el mismo paso que como fue desarrolada la aplicación. Espero que esto te ayude

Tomás 20-06-2003 22:14:40

Al crear la base de datos nombre completo: c:\tdprofes\tdprofes.gdb y en el alias tdprofes.gdb

Conectado con TIBDatabase, TIBTransaction, TIBDataSet y en el componente TIBDatabase en la propiedad DatabaseName la ruta completa c:\tdprofes\tdprofes.gdb y seguramente es esto. Cambiaré poniendo solo tdprofes.gdb y probaré.

Supongo que era esto lo que me indicabas. Si es otra cosa me lo dices.

También puedría ser lo que apunta adrianD porque es para un amigo y se lo instalé sin estar rematado para que lo viera, y al diseñarlo si tenía todo abierto.

Un saludo. Tomás.

guillotmarc 20-06-2003 22:38:39

Hola.

Si solo pones el nombre del archivo, no lo encontrará y por tanto no podrá abrirlo. Tienes que indicar también la ruta (como hacías). Pero dado que la ruta puede cambiar, lo que tienes que hacer es especificar la ruta por código antes de abrir la conexión.

No utilizo IBX por lo que no te puedo indicar los pasos exactios, pero basicamente siempre es lo mismo : Primero, tienes que guardar en algun lugar (por ejemplo en un archivo .ini) la dirección del archivo. Segundo, antes de abrir la conexión, por ejemplo en el evento BeforeConnect, tienes que cambiar la ruta de la propiedad DatabaseName, por la ruta guardada en el archivo .ini

Saludos.

jachguate 21-06-2003 00:21:08

o si va a estar en la misma carpeta que tu aplicación, podes hacer:

Código:

DataBaseFileName := ExtractFilePath(ExpandFileName(ParamStr(0))) + 'LaBaseDeDatos.gdb';
Donde DataBaseFileName es la propiedad o parámetro donde indicas el archivo de la base de datos.

Hasta luego.

;)

Tomás 23-06-2003 23:52:03

Tal y como apuntabais, poniendo solo el nobre del archivo no funcina, hay que poner toda la ruta.

Como sí que tengo la base de datos en la misma carpeta que la aplicación, con el código que me indica jachguate funciona. Me queda así:

IBDBProfes.DatabaseName := ExtractFilePath(ExpandFileName(ParamStr(0))) + 'TDPROFES.GDB';

Muchas gracias a todos. Tomás.


La franja horaria es GMT +2. Ahora son las 15:32:30.

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