Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Datenbanken (https://www.delphipraxis.net/22-library-datenbanken/)
-   -   Delphi ODBC-Entrag zur Laufzeit erzeugen (https://www.delphipraxis.net/8017-odbc-entrag-zur-laufzeit-erzeugen.html)

Captnemo 27. Aug 2003 08:08


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:
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]


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