SQLSetConnectAttrForDbcInfo-Funktion

Konformität
Eingeführte Version: ODBC 3.81 Normeneinhaltung: ODBC

Summary
SQLSetConnectAttrForDbcInfo ist dasselbe wie SQLSetConnectAttr, setzt jedoch das Attribut auf das Verbindungsinformationstoken statt auf das Verbindungshandle.

Syntax

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

Argumente

hDbcInfoToken
[Eingabe] Token-Handle.

Attribut
[Eingabe] Attribut zu Menge. Die Liste der gültigen Attribute ist treiberspezifisch und identisch mit der von SQLSetConnectAttr.

ValuePtr
[Eingabe] Zeiger auf den Wert, der mit Attribut verknüpft werden soll. Je nach Wert des Attributs ist ValuePtr ein 32-Bit-unsignierter ganzzahliger Wert oder zeigt auf eine null-terminierte Zeichenfolge. Beachten Sie, dass wenn das Attribut-Argument ein treiberspezifischer Wert ist, der Wert in ValuePtr eine vorzeichenbetecknte ganze Zahl sein kann.

StringLength
[Eingabe] Wenn attribut ein ODBC-definiertes Attribut ist und ValuePtr auf eine Zeichenfolge oder einen binären Puffer zeigt, sollte dieses Argument die Länge von *ValuePtr sein. Für Zeichenstring-Daten sollte dieses Argument die Anzahl der Bytes in der Zeichenkette enthalten.

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

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

  • 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(länge) 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, je nach Bedarf.

Rücklieferungen

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR oder SQL_INVALID_HANDLE.

Diagnostics

Dasselbe wie SQLSetConnectAttr, nur dass der Treibermanager einen HandleType von SQL_HANDLE_DBC_INFO_TOKEN und einen Handle von hDbcInfoToken verwendet.

Bemerkungen

SQLSetConnectAttrForDbcInfo ist dasselbe wie SQLSetConnectAttr, setzt jedoch das Attribut auf das Verbindungsinformationstoken statt auf den Verbindungshandle. Wenn SQLSetConnectAttr beispielsweise ein Attribut nicht erkennt, sollte SQLSetConnectAttrForDbcInfo ebenfalls SQL_ERROR für dieses Attribut zurückgeben.

Wann immer der Treiber SQL_ERROR oder SQL_INVALID_HANDLE zurückgibt, sollte der Treiber dieses Attribut ignorieren, um die Pool-ID zu berechnen. Außerdem erhält der Treibermanager die Diagnoseinformationen von hDbcInfoToken und gibt SQL_SUCCESS_WITH_INFO in SQLConnect und SQLDriverConnect an die Anwendung zurück. Daher kann eine Anwendung Details darüber abrufen, warum bestimmte Attribute nicht gesetzt werden können.

Anwendungen sollten diese Funktion nicht direkt aufrufen. Ein ODBC-Treiber, der treiberbewusstes Connection Pooling unterstützt, muss diese Funktion implementieren.

Fügen Sie sqlspi.h für die Entwicklung von ODBC-Treibern hinzu.