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)
-   -   Crear ODBC dinámicamente? (https://www.clubdelphi.com/foros/showthread.php?t=54379)

HccSoft 17-03-2008 08:16:35

Crear ODBC dinámicamente?
 
Es posible crear un DNS de usuario dinámicamente?

Utilizo un ADOConnection de Delphi 7 para acceder a una BD remota SQL Server. Me gustaría que el ejecutable funcionara desde un Pendrive sin tener que configurar nada.

Gracias

rafita 18-03-2008 11:10:06

Hola,
Yo no creo ODBC's dinámicamente, sino que me limito a crear la conexión para mi aplicación capturando los datos de un archivo de texto.

Código:

  GUbicacionAplicacion:=ExtractFilePath(Application.ExeName);
  AssignFile(fich_setup,GUbicacionAplicacion+'Configuracion.txt');
  {$I-} Reset(fich_setup); {$I+}
  if IOResult<>0 then
    begin
      ShowMessage('No encuentro el archivo de configuración inicial Configuracion.txt.');
      Close;
    end
  else
    begin
      ReadLn(Fich_Setup,Cadena); GConexion:=Cadena;
      CloseFile(Fich_Setup);
      // establecer conexión con la base de datos
      ADOQuery1.Connection:=ADOcn1;
      ADOQuery2.Connection:=ADOcn1;

Espero que esto te oriente un poco

jcarteagaf 18-03-2008 15:15:41

Creacion de ODBC dinamica
 
La información de los ODBC se almacen en el registro del Windows, uso el siguiente codigo para generar ODBC's que apuntan a SQL SERVER desde mis aplicaciones

Código SQL [-]
var
  r : TRegistry

begin
    r := TRegistry.create;
    r.RootKey:= HKEY_LOCAL_MACHINE;
    r.OpenKey('SOFTWARE\ODBC\ODBC.INI\'+Nombre_ODBC,true);
    r.WriteString('Database',Nombre_base_de_datos);
    r.WriteString('Driver','C:\WINDOWS\System32\SQLSRV32.dll');
    r.WriteString('Language','Español');
    r.WriteString('Lastuser',Nombre_Usuario);
    r.WriteString('Server',Nombre_Servidor);
    r.CloseKey;
    r.Free;
    r := TRegistry.create;
    r.RootKey:= HKEY_LOCAL_MACHINE;
    r.OpenKey('SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources',true);
    r.WriteString(Nombre_ODBC,'SQL Server');
    r.CloseKey;
    r.Free;
  end;
end;

Espero que te sirva. Saludos

HccSoft 18-03-2008 15:19:32

Muchas gracias por las respuestas.

Creo que esta última es lo que buscaba. Luego probaré el código.


La franja horaria es GMT +2. Ahora son las 13:54:29.

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