Necesito en tiempo de ejecucion crear un DSN para una bd MySql en tiempo de ejecucion, consegui este codigo pero para access y no se que tengo que cambiar, me gustaria que me ayudaran, gracias.
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
R1:TRegistry;
begin
R1:=TRegistry.create;
R1.RootKey := HKEY_LOCAL_MACHINE;
if R1.OpenKey('SOFTWARE\ODBC\ODBC.INI',FALSE)
then R1.CreateKey(nombre.Text);
R1.Destroy;
R1:=TRegistry.create;
R1.RootKey := HKEY_LOCAL_MACHINE;
if R1.OpenKey('SOFTWARE\ODBC\ODBC.INI\'+nombre.Text,FALSE) then
begin
R1.WriteString('DBQ',Path.Text);
R1.WriteString('Driver',PathDll.Text);
R1.WriteInteger('DriverId', 25);
R1.WriteString('FIL','MS Access;');
R1.WriteString('PWD',clave.text);
R1.WriteInteger('SafeTransactions', 0);
R1.WriteString('UID',usr.text);
R1.CreateKey('Engines');
R1.Destroy;
R1:=TRegistry.create;
R1.RootKey := HKEY_LOCAL_MACHINE;
if R1.OpenKey('SOFTWARE\ODBC\ODBC.INI\'+nombre.Text+'\Engines',FALSE) then
begin
R1.CreateKey('Jet');
R1.Destroy;
R1:=TRegistry.create;
R1.RootKey := HKEY_LOCAL_MACHINE;
if R1.OpenKey('SOFTWARE\ODBC\ODBC.INI\'+nombre.Text+'\Engines\Jet',FALSE) then
begin
R1.WriteString('ImplicitCommitSync','');
R1.WriteInteger('MaxBufferSize', 2048);
R1.WriteInteger('PageTimeout', 5);
R1.WriteInteger('Threads', 3);
R1.WriteString('UserCommitSync','Yes');
R1.Destroy;
R1:=TRegistry.create;
R1.RootKey := HKEY_LOCAL_MACHINE;
if R1.OpenKey('SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources',FALSE) then
begin
R1.WriteString(nombre.text, driver2.text);
R1.Destroy;
ShowMessage(' ALIAS CREADO. ');
end;
end;
end;
end;
end;