Freigeben über


SQLSetConnectAttrForDbcInfo-Funktion

Konformität
Version eingeführt: ODBC 3.81 Standards Compliance: ODBC

Zusammenfassung
SQLSetConnectAttrForDbcInfo ist identisch mit SQLSetConnectAttr, legt jedoch das Attribut für das Verbindungsinformationstoken anstelle des Verbindungshandles fest.

Syntax

  
SQLRETURN  SQLSetConnectAttrForDbcInfo(  
                SQLHDBC_INFO_TOKEN    hDbcInfoToken,  
                SQLINTEGER            Attribute,  
                SQLPOINTER            ValuePtr,  
                SQLINTEGER            StringLength );  

Argumente

hDbcInfoToken
[Eingabe] Tokenhandle.

Attribut
[Eingabe] Attribut, das festgelegt werden soll. Die Liste der gültigen Attribute ist treiberspezifisch und identisch mit SQLSetConnectAttr.

ValuePtr
[Eingabe] Zeiger auf den Wert, der dem Attribut zugeordnet werden soll. Abhängig vom Wert von Attribut ist ValuePtr ein 32-Bit-Ganzzahlwert ohne Vorzeichen oder zeigt auf eine Zeichenfolge mit NULL-Beendigung. Beachten Sie, dass der Wert in ValuePtr möglicherweise eine ganzzahlige Vorzeichen ist, wenn das Attributargument ein treiberspezifischer Wert ist.

StringLength
[Eingabe] Wenn Attribut ein odbc-definiertes Attribut ist und ValuePtr auf eine Zeichenfolge oder einen binären Puffer verweist, sollte dieses Argument die Länge von *ValuePtr haben. Für Zeichenfolgendaten sollte dieses Argument die Anzahl der Bytes in der Zeichenfolge enthalten.

Wenn Attribut ein ODBC-definiertes Attribut und ValuePtr eine ganze Zahl ist, wird StringLength ignoriert.

Wenn Attribut ein vom Treiber definiertes Attribut ist, gibt die Anwendung die Art des Attributs für den Treiber-Manager an, indem das StringLength-Argument festgelegt wird. StringLength kann die folgenden Werte aufweisen:

  • Wenn ValuePtr ein Zeiger auf eine Zeichenfolge ist, ist StringLength die Länge der Zeichenfolge oder SQL_NTS.

  • Wenn ValuePtr ein Zeiger auf einen binären Puffer ist, platziert die Anwendung das Ergebnis des makros SQL_LEN_BINARY_ATTR(length) in StringLength. Dadurch wird ein negativer Wert in StringLength platziert.

  • Wenn ValuePtr ein Zeiger auf einen anderen Wert als eine Zeichenfolge oder eine binäre Zeichenfolge ist, sollte StringLength den Wert SQL_IS_POINTER haben.

  • Wenn ValuePtr einen Wert mit fester Länge enthält, ist StringLength entweder SQL_IS_INTEGER oder SQL_IS_UINTEGER.

Gibt zurück

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR oder SQL_INVALID_HANDLE.

Diagnose

Identisch mit SQLSetConnectAttr, mit der Ausnahme, dass der Treiber-Manager einen HandleType von SQL_HANDLE_DBC_INFO_TOKEN und ein Handle von hDbcInfoToken verwendet.

Bemerkungen

SQLSetConnectAttrForDbcInfo ist identisch mit SQLSetConnectAttr, legt aber das Attribut für das Verbindungsinformationstoken anstelle des Verbindungshandles fest. Wenn SQLSetConnectAttr beispielsweise kein Attribut erkennt, sollte SQLSetConnectAttrForDbcInfo auch SQL_ERROR für dieses Attribut zurückgeben.

Wenn der Treiber SQL_ERROR oder SQL_INVALID_HANDLE zurückgibt, sollte der Treiber dieses Attribut ignorieren, um die Pool-ID zu berechnen. Außerdem ruft der Treiber-Manager die Diagnoseinformationen von hDbcInfoToken ab und gibt SQL_SUCCESS_WITH_INFO an die Anwendung in SQLConnect und SQLDriverConnect zurück. Daher kann eine Anwendung Details dazu abrufen, warum einige Attribute nicht festgelegt werden können.

Anwendungen sollten diese Funktion nicht direkt aufrufen. Diese Funktion muss von einem ODBC-Treiber implementiert werden, der treiberbasierte Verbindungspools unterstützt.

Schließen Sie sqlspi.h für die ODBC-Treiberentwicklung ein.

Weitere Informationen

Entwickeln eines ODBC-Treibers
Treiberfähiges Verbindungspooling
Entwickeln von Verbindungspool-Unterstützung in einem ODBC-Treiber