Ver Mensaje Individual
  #18  
Antiguo 10-09-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Meridiano.
Cita:
Empezado por Meridano Ver Mensaje
...
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
  // ruta a Firebird
  ALIASESPATH = 'C:\Program Files\Firebird\Firebird_2_5\aliases.conf';
  // alias que varia
  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;

// cambiar base de datos
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;

// abrir base de datos
procedure TForm1.btConectarClick(Sender: TObject);
var
  db: TIBDatabase;
begin
  db := IBDataBase1;
  if db.Connected then db.Close;
  db.DatabaseName := '\\SERVER_NAME\MUTANT'; // (SERVER_NAME = nombre del servidor)
  db.LoginPrompt  := False;
  db.Params.Clear;
  db.Params.Add('user_name=sysdba');
  db.Params.Add('password=a9g238fu'); // contraseña
  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
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 11-09-2015 a las 14:19:21. Razón: corregir nombre de constantes
Responder Con Cita