SQLConfigDriver-Funktion
Konformität
Version eingeführt: ODBC 2.5
Zusammenfassung
SQLConfigDriver lädt die entsprechende Treibersetup-DLL und ruft die ConfigDriver-Funktion auf.
Auf die Funktionalität von SQLConfigDriver kann auch mit ODBCCONF.EXEzugegriffen werden.
Syntax
BOOL SQLConfigDriver(
HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszArgs,
LPSTR lpszMsg,
WORD cbMsgMax,
WORD * pcbMsgOut);
Argumente
hwndParent
[Eingabe] Übergeordnetes Fensterhandle. Die Funktion zeigt keine Dialogfelder an, wenn das Handle NULL ist.
fRequest
[Eingabe] Anforderungstyp. fRequest muss einen der folgenden Werte enthalten:
ODBC_CONFIG_DRIVER: Ändert das vom Treiber verwendete Zeitlimit für Verbindungspools.
ODBC_INSTALL_DRIVER: Installiert einen neuen Treiber.
ODBC_REMOVE_DRIVER: Entfernt einen vorhandenen Treiber.
Diese Option kann auch treiberspezifisch sein. In diesem Fall muss die fRequest für die erste Option mit ODBC_CONFIG_DRIVER_MAX+1 beginnen. Die fRequest für jede zusätzliche Option muss auch mit einem Wert beginnen, der größer als ODBC_CONFIG_DRIVER_MAX+1 ist.
lpszDriver
[Eingabe] Der Name des Treibers, der in den Systeminformationen registriert ist.
lpszArgs
[Eingabe] Eine NULL-beendete Zeichenfolge, die Argumente für eine treiberspezifische fRequest enthält.
lpszMsg
[Ausgabe] Eine NULL-beendete Zeichenfolge, die eine Ausgabemeldung aus dem Treibersetup enthält.
cbMsgMax
[Eingabe] Länge von lpszMsg.
pcbMsgOut
[Ausgabe] Gesamtanzahl der Bytes, die in lpszMsg zurückgegeben werden können. Wenn die Anzahl der zurückzugebenden Bytes größer oder gleich cbMsgMax ist, wird die Ausgabenachricht in lpszMsg in cbMsgMax abgeschnitten, abzüglich des NULL-Terminzeichens. Das pcbMsgOut-Argument kann ein NULL-Zeiger sein.
Gibt zurück
Die Funktion gibt TRUE zurück, wenn sie erfolgreich ist, FALSE, wenn sie fehlschlägt.
Diagnose
Wenn SQLConfigDriver FALSE zurückgibt, kann ein zugeordneter *pfErrorCode-Wert abgerufen werden, indem SQLInstallerError aufgerufen wird. In der folgenden Tabelle sind die *pfErrorCode-Werte aufgeführt, die von SQLInstallerError zurückgegeben werden können, und die einzelnen Werte im Kontext dieser Funktion werden erläutert.
*pfErrorCode | Fehler | BESCHREIBUNG |
---|---|---|
ODBC_ERROR_GENERAL_ERR | Allgemeiner Installationsfehler | Es ist ein Fehler aufgetreten, für den kein spezifischer Installerfehler aufgetreten ist. |
ODBC_ERROR_INVALID_BUFF_LEN | Ungültige Pufferlänge | Das lpszMsg-Argument war ungültig. |
ODBC_ERROR_INVALID_HWND | Ungültiges Fensterhandle | Das Argument hwndParent war ungültig. |
ODBC_ERROR_INVALID_REQUEST_TYPE | Ungültiger Anforderungstyp | Das fRequest-Argument war nicht eines der folgenden: ODBC_INSTALL_DRIVER ODBC_REMOVE_DRIVER Das fRequest-Argument war eine treiberspezifische Option, die kleiner oder gleich ODBC_CONFIG_DRIVER_MAX war. |
ODBC_ERROR_INVALID_NAME | Ungültiger Treiber- oder Übersetzername | Das argument lpszDriver war ungültig. Es konnte nicht in der Registrierung gefunden werden. |
ODBC_ERROR_INVALID_KEYWORD_VALUE | Ungültige Schlüsselwort-Wert-Paare | Das lpszArgs-Argument enthielt einen Syntaxfehler. |
ODBC_ERROR_REQUEST_FAILED | Fehler bei der Anforderung | Das Installationsprogramm konnte den vom Argument fRequest angeforderten Vorgang nicht ausführen. Fehler beim Aufruf von ConfigDriver . |
ODBC_ERROR_LOAD_LIBRARY_FAILED | Die Setupbibliothek des Treibers oder des Übersetzers konnte nicht geladen werden. | Die Setupbibliothek des Treibers konnte nicht geladen werden. |
ODBC_ERROR_OUT_OF_MEM | Nicht genügend Arbeitsspeicher. | Das Installationsprogramm konnte die Funktion aufgrund eines Mangels an Arbeitsspeicher nicht ausführen. |
Kommentare
SQLConfigDriver ermöglicht es einer Anwendung, die ConfigDriver-Routine eines Treibers aufzurufen, ohne den Namen kennen zu müssen, und die treiberspezifische Setup-DLL laden zu müssen. Ein Setupprogramm ruft diese Funktion auf, nachdem die Setup-DLL des Treibers installiert wurde. Das aufrufende Programm sollte beachten, dass diese Funktion möglicherweise nicht für alle Treiber verfügbar ist. In einem solchen Fall sollte das aufrufende Programm ohne Fehler fortgesetzt werden.
Driver-Specific Optionen
Eine Anwendung kann treiberspezifische Features anfordern, die vom Treiber mit dem Argument fRequest verfügbar gemacht werden. Die fRequest für die erste Option wird ODBC_CONFIG_DRIVER_MAX+1 sein, und zusätzliche Optionen werden von diesem Wert um 1 erhöht. Alle argumente, die vom Treiber für diese Funktion benötigt werden, sollten in einer null-beendeten Zeichenfolge angegeben werden, die im argument lpszArgs übergeben wird. Treiber, die diese Funktionalität bereitstellen, sollten eine Tabelle mit treiberspezifischen Optionen beibehalten. Die Optionen sollten vollständig in der Treiberdokumentation dokumentiert werden. Anwendungsautoren, die treiberspezifische Optionen verwenden, sollten sich bewusst sein, dass die Anwendung dadurch weniger interoperabel wird.
Festlegen des Timeouts für Verbindungspools
Timeouteigenschaften für Verbindungspools können festgelegt werden, wenn Sie die Konfiguration des Treibers festlegen. SQLConfigDriver wird aufgerufen, wobei eine fRequest von ODBC_CONFIG_DRIVER und lpszArgs auf CPTimeout festgelegt ist. CPTimeout bestimmt den Zeitraum, für den eine Verbindung im Verbindungspool verbleiben kann, ohne verwendet zu werden. Wenn das Timeout abläuft, wird die Verbindung geschlossen und aus dem Pool entfernt. Das Standardtimeout beträgt 60 Sekunden.
Wenn SQLConfigDriver aufgerufen wird und fRequest auf ODBC_INSTALL_DRIVER oder ODBC_REMOVE_DRIVER festgelegt ist, lädt der Treiber-Manager die entsprechende Treibersetup-DLL und ruft die ConfigDriver-Funktion auf. Wenn SQLConfigDriver mit einer fRequest von ODBC_CONFIG_DRIVER aufgerufen wird, wird die gesamte Verarbeitung im ODBC-Installationsprogramm ausgeführt, sodass die Setup-DLL des Treibers nicht geladen werden muss.
Meldungen
Eine Treibersetuproutine kann eine SMS als NULL-beendete Zeichenfolgen im lpszMsg-Puffer an eine Anwendung senden. Die Nachricht wird von der ConfigDriver-Funktion in cbMsgMax abgeschnitten, abzüglich des Null-Terminierungszeichens, wenn sie größer oder gleich cbMsgMax-Zeichen ist.
Verwandte Funktionen
Informationen über | Finden Sie unter |
---|---|
Hinzufügen, Ändern oder Entfernen eines Treibers | ConfigDriver(in der Setup-DLL) |
Entfernen der Standarddatenquelle | SQLRemoveDefaultDataSource |