![]() |
ODBC-Entrag zur Laufzeit erzeugen
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:
Parameter von SQLConfigDataSource
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; 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] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz