Hi Leute,
ich habe sehr lange im Internet danach gesucht, und kann mir vorstellen, dass auch unter euch einige gibt, die Interesse daran haben könnten.
Deswegen möchte ich euch diesen Code zur Verfügung stellen.
Hab ich unter Windows XP und Windows 98 getestet. Ich denke das es auch unter allen anderen Windows-Systemen laufen wird.
AN MOD: Vielleicht war ich ja auch nur zu Blind, und dieser Code ist doch schon jedem geläufig.
Delphi-Quellcode:
const
ODBC_ADD_DSN = 1;
//Add data source
ODBC_CONFIG_DSN = 2;
//Configure (edit) data source
ODBC_REMOVE_DSN = 3;
//Remove data source
ODBC_ADD_SYS_DSN = 4;
//add a system DSN
ODBC_CONFIG_SYS_DSN = 5;
//Configure a system DSN
ODBC_REMOVE_SYS_DSN = 6;
//Remove a system DSN
ODBC_REMOVE_DEFAULT_DSN = 7;
//Remove the default DSN
function SQLConfigDataSource(hwndParent: HWND;
fRequest: WORD;
lpszDriver: LPCSTR;
lpszAttributes: LPCSTR): BOOL;
stdcall;
external '
ODBCCP32.DLL';
procedure TForm1.Button1Click(Sender: TObject);
begin
if not SQLConfigDataSource(0,ODBC_ADD_SYS_DSN,
'
MySQL ODBC 3.51 Driver', PChar('
DSN=Meine Verbindung'#0'
Description=Ein Text'#0'
Server=192.168.0.1'#0'
Database=TestDB'#0'
User=Wortmann'#0'
Password=geheim'#0) )
then
ShowMessage('
Fehler');
end;
Parameter von SQLConfigDataSource
1. Windowhandle halt.
2.
ODBC... -> Könnt ihr aus den Konstanten entnehmen
3. Der Treibername. Den könnt ihr aus der
ODBC-Konfiguration von Windows unter dem Reiter "Treiber" entnehmen. Er muß vollständig so geschieben werden, wie er dort unter Name aufgeführt ist (mit allen Leerzeichen und Klammern, usw). Ist ein Parameter falsch wird er ebenfalls nicht berücksichtigt (Es kommt aber auch kein Fehler, die Funktion meldet trotzdem ein True zurück).
Die Parameter sind von Treiber zu Treiber unterschiedlich. Einfach mal einen Link manuell erstellen, und dann ein bischen probieren bis es klappt. Das Beispiel ist ein
MySQL-Treiber.
4. Ein PChar in dem alle Parameter, die notwendig sind um den Link zu erstellen, jeweils durch #0 separiert aufgelistet werden. Nicht vorhandene Parameter werden nicht berücksicht.
Viel Erfolg.
[edit=Matze]Code formatiert. Mfg, Matze[/edit]