Ver Mensaje Individual
  #16  
Antiguo 11-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 25
Caral Va por buen camino
Hola
Bueno erasmorc, la verdad tienes y no razon en que el componente adoconnection configura la direccion de la base de datos en tiempo de ejecucion, por que digo tienes y no, porque en realidad la conexion la necesitas para hacer el programa, no necesariamente para distribuirlo o ejecutarlo.
Si usas un datamodule y un archivo .ini, puedes copiar la ruta que usa el adoconection y cambiarla en el ini muy facilmente.
Un ejemplo con mysql:
En el datamodule:
Código Delphi [-]
procedure TDataModule1.DataModuleCreate(Sender: TObject);
Var BaseDeDatos, ConStr : String;
    IniFile: TIniFile;
begin
 // Obtiene la ruta y el nombre de la base de datos
   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Archivo.ini');
   BasedeDatos := IniFile.ReadString('BD','Path','');
   If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
   ConStr := 'Provider=MSDASQL.1;'+
             'Data Source='+BaseDeDatos+';'+
             'Persist Security Info=True';//'+
         //    'Password=admin1';
   AC1.ConnectionString := ConStr;
   AC1.Open;
end;
Como veras, al iniciar el datamodule, este busca primero el archivo.ini que contiene lo que quieras, en mi caso el nombre de la base de datos, pero puedes ponerle toda la direccion si es el caso asi:
Archivo.ini:
Cita:
[BD]
Path="Basedatos"
[Logon]
Auto="NO"
Login=""
Pass=""
Al distribuir el ejecutable, se distribuye el archivo.ini, que lo puede modificar cualquiera facilmente.
Bueno espero te sirva de otro ejemplo.
Saludos
Responder Con Cita