Freigeben über


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.

Informationen über Finden Sie unter
Hinzufügen, Ändern oder Entfernen eines Treibers ConfigDriver(in der Setup-DLL)
Entfernen der Standarddatenquelle SQLRemoveDefaultDataSource