Ejemplo de creación de un DSN para Access:
procedure TForm1.Button1Click(Sender: TObject);
var
Reg:TRegistry;
Path:String;
begin
Path:='c:\Neptuno.mdb';
Reg:=TRegistry.Create;
Try
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('\Software\ODBC\ODBC.INI\jose',True);
Reg.WriteString('DBQ',Path);
Reg.WriteString('Driver','c:\windows\system\odbcjt32.dll');
Reg.WriteInteger('DriverId',25);
Reg.WriteString('FIL','MS Access;');
Reg.WriteInteger('SafeTransactions',0);
Reg.WriteString('UID','');
Reg.OpenKey('\Software\ODBC\ODBC.INI\jose\Engines\Jet',True);
Reg.WriteString('ImplicitCommitSync','');
Reg.WriteInteger('MaxBufferSize',2048);
Reg.WriteInteger('PageTimeout',5);
Reg.WriteInteger('Threads',3);
Reg.WriteString('UserCommitSync','Yes');
Reg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources',True);
Reg.WriteString('jose','Microsoft Access Driver (*.mdb)');
finally
Reg.Free;
end;
end;
Matizaciones por Julio García
Reg.WriteString('Driver','c:\windows\system\odbcjt32.dll');
Se está presuponiendo que la ruta al directorio system es siempre esa, cuando no tiene por qué serlo.
El driver necesario, en este caso odbcjt32.dll al tratarse de Access, se encuentra en el directorio de sistema de Windows. La ruta a este directorio se puede obtener con la función GetSystemDirectory.
El código mostrado puede utilizarse para crear un DSN de usuario con sólo cambiar:
Reg.RootKey:=HKEY_LOCAL_MACHINE por Reg.RootKey:=HKEY_CURRENT_USER
|