Hola Meridiano.
Cita:
Empezado por Meridano
...
Es decir que si hoy quiero utilizar los datos de la base c:\ruta\base1.gdb pueda usarla, y si mañana quiero utilizar la base d:\xxx\base5.gdb pueda modificar el ini (o cualquier otro sitio de donde la tome) y si dentro de un mes 'me apetece' tomarla de otro sitio que pueda definirlo y tomarla de ese sitio que a priori no conozco.
...
|
De tu comentario anterior interpreto:
Código Delphi
[-]
...
implementation
const
ALIASESPATH = 'C:\Program Files\Firebird\Firebird_2_5\aliases.conf';
MUTANTALIAS = 'MUTANT=';
MSGASK = '¿ Desea reemplazar la base de datos ?';
MSGERR = 'Error al intentar conectar con la base de datos.';
procedure TForm1.FormCreate(Sender: TObject);
begin
OpenDialog1.FileName := '';
OpenDialog1.Filter := 'Firebird database | *.FDB';
end;
procedure TForm1.btChangeDBClick(Sender: TObject);
var
TS : TStrings;
i : Integer;
begin
if OpenDialog1.Execute then
begin
TS := TStringList.Create;
try
TS.LoadFromFile(ALIASESPATH);
for i:= 0 to TS.Count-1 do
if Copy(TS[i],1,Length(MUTANTALIAS)) = MUTANTALIAS then
begin
if MessageBox(0,PChar(MSGASK),'', MB_ICONQUESTION+MB_YESNO) = IDYES then
begin
TS[i] := MUTANTALIAS + OpenDialog1.FileName;
TS.SaveToFile(ALIASESPATH);
end;
Exit;
end;
finally
TS.Free;
end;
end;
end;
procedure TForm1.btConectarClick(Sender: TObject);
var
db: TIBDatabase;
begin
db := IBDataBase1;
if db.Connected then db.Close;
db.DatabaseName := '\\SERVER_NAME\MUTANT'; db.LoginPrompt := False;
db.Params.Clear;
db.Params.Add('user_name=sysdba');
db.Params.Add('password=a9g238fu'); try
db.Open;
except
raise Exception.Create(MSGERR);
end;
ShowMessage('¡ Conectado !');
end;
Está probado con IBX, pero con pequeñas adaptaciones a otros componentes, la funcionalidad es la misma.
Saludos