Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Duda con los alias (https://www.clubdelphi.com/foros/showthread.php?t=55804)

Pedro-Juan 27-04-2008 11:56:26

Duda con los alias
 
Hola a tod@s.

Delphi6
InterBase 5.1

Perdon estaba leyendo este tema y a mi tambien me generaba problemas el installador. Estoy (creo) en el camino correcto para solucionarlo. Pero me queda una duda con los alias:

¿Qué sucede si el usuario final decide instalar el programa en otro directorio?

¿Hay que obligarlo a instalarlo en una ruta concreta para que no falle el alias?

Si se instala en la ruta C:\Archivos de programa\ ¿Que sucede cuando alguien de un país no hispano se baja la aplicación? Por ejemplo: (C:\Program files\), el alias no encontrará la ruta...

He intentado solucionarlo de esta manera, pero no funciona, no encuentra la ruta del alias cuando lo instalo en un directorio diferente:


Código Delphi [-]
procedure CrearAlias(cRuta: String); //se declara el procedure
...
procedure TDataModule.DataModuleCreate(Sender: TObject);
var cAliasDB: String;
begin
 
cAliasDB := ExtractFilePath(Application.ExeName) + '\Data\PROGRAMA.GDB';
 
CrearAlias(cAliasDB);
...
end;
 
//implementación
procedure CrearAlias(cRuta: String);
var NewAlias: TStringList;
begin
  NewAlias := TStringList.Create;
  with NewAlias do begin
    Clear;
    Add('SERVER NAME=' + cRuta);
  end;
  Session.ModifyAlias('ProgramaData', NewAlias);
  NewAlias.Free;
end;


Estoy a punto de decidir obligar al usuario final a instalar el programa en un directorio en C:\, deshabilitando, en el instalador, la posibilidad de modificarlo.

Muchas gracias.

BlueSteel 28-04-2008 02:52:16

Hola Pedro-Juan

Bueno, en realidad no se si te sirva mucho lo del alias.... ya que eso se utiliza bien para las bases de tipo plana como Paradox, Dbase o similar...y cuando lo trabajas por medio del DBE.. en donde el Alias equivale a la Ruta donde estan los Archivos...

Las Bases de Datos de Interbase solo se instalarán en el directorio que eligas pero siempre que se instale el Interbase Server ...(ya sea que trabajes en modo local o Cliente - Servidor)...

El uso de los Alias en Motores de Base de Datos sirve para llamar ya sea la misma base, una tabla, un procedimiento, funcion o cualquier elemento que tengas dentro y quieras darle otro nombre...

por ejemplo, posees una Tabla llamada :Detalle_Factura_Venta, y le pones un Alias DFVenta....porque es mas corto...solo que cuando realizas el modelo le pones un nombre largo para identificar lo que almacenara...

Bueno, cualquier cosa...(me pueden corregir si me equivoco..)...

Salu2:p:D

Dedalo 28-04-2008 08:23:40

¿Y porque no cambiar el alias en la primera ejecucion? hay procedimientos para cambiar un alias, si en la primera ejecucion no se encuentran los ficheros llama a un procedimiento que le pida al usuario la carpeta de ubicacion de los datos y cambia tu mismo el alias.

Pedro-Juan 28-04-2008 20:04:34

Cita:

Empezado por BlueSteel (Mensaje 282905)
Hola Pedro-Juan
Las Bases de Datos de Interbase solo se instalarán en el directorio que eligas pero siempre que se instale el Interbase Server ...(ya sea que trabajes en modo local o Cliente - Servidor)...
Salu2:p:D

Hola BlueSteel, un saludo. Bueno, creo que InterBase funciona bien con InterBase embedded? o con FireBird embedded (sólo es necesario una dll, hay que cambiarla el nombre a gds32.dll y ponerla en el mismo directorio del *.exe), sin instalar InterBase. Esto me ha funcionado en otra máquina que no tiene delphi, pero me falla el alias si cambio el directorio en el proceso de instalación.
Muchas gracias.

Pedro-Juan 28-04-2008 20:08:36

Cita:

Empezado por Dedalo (Mensaje 282927)
¿Y porque no cambiar el alias en la primera ejecucion? hay procedimientos para cambiar un alias, si en la primera ejecucion no se encuentran los ficheros llama a un procedimiento que le pida al usuario la carpeta de ubicacion de los datos y cambia tu mismo el alias.

Hola Dedalo, eso es precisamente lo que intento hacer con el código de arriba. El DataModule es lo primero que se crea, e intenta captar la ruta donde se encuentra el *.gdb.

Código Delphi [-]
cAliasDB := ExtractFilePath(Application.ExeName) + '\Data\PROGRAMA.GDB';
//Por supuesto, el subdirectorio '\Data\PROGRAMA.GDB' no puede ser cambiado

Muchas gracias.


La franja horaria es GMT +2. Ahora son las 17:37:28.

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