Teilen über


SQLSetConnectOption-Zuordnung

Wenn odbc 2. Die x-Anwendung ruft SQLSetConnectOption über einen ODBC 3*.x*-Treiber auf, wobei der Aufruf von

SQLSetConnectOption(hdbc, fOption, vParam)  

ergibt sich wie folgt:

  • Wenn fOption ein ODBC-definiertes Verbindungsattribut angibt, das eine Zeichenfolge erfordert, ruft der Treiber-Manager auf.

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, SQL_NTS)  
    
  • Wenn fOption ein von ODBC definiertes Verbindungsattribut angibt, das einen 32-Bit-Ganzzahlwert zurückgibt, ruft der Treiber-Manager auf.

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, 0)  
    
  • Wenn fOption ein vom Treiber definiertes Verbindungsattribut angibt, ruft der Treiber-Manager auf.

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, BufferLength)  
    

In den vorherigen drei Fällen wird das Argument ConnectionHandle auf den Wert in hdbc, das Attributargument auf den Wert in fOption und das ValuePtr-Argument auf den gleichen Wert wie vParam festgelegt.

Da der Treiber-Manager nicht weiß, ob das treiberdefinierte Verbindungsattribut eine Zeichenfolge oder einen ganzzahligen 32-Bit-Wert benötigt, muss er einen gültigen Wert für das BufferLength-Argument von SQLSetConnectAttr übergeben. Wenn der Treiber spezielle Semantik für treiberdefinierte Verbindungsattribute definiert hat und mit SQLSetConnectOption aufgerufen werden muss, muss er SQLSetConnectOption unterstützen.

Wenn odbc 2. Die x-Anwendung ruft SQLSetConnectOption auf, um eine treiberspezifische Anweisungsoption in einem ODBC 3*.x*-Treiber festzulegen, und die Option wurde in odbc 2 definiert. x-Version des Treibers, eine neue Manifestkonstante sollte für die Option im ODBC 3*.x*-Treiber definiert werden. Wenn die alte Manifestkonstante im Aufruf von SQLSetConnectOption verwendet wird, ruft der Treiber-Manager SQLSetConnectAttr auf, wobei das StringLength-Argument auf 0 festgelegt ist.

Bei einem ODBC 3*.x*-Treiber überprüft der Treiber-Manager nicht mehr, ob fOption zwischen SQL_CONN_OPT_MIN und SQL_CONN_OPT_MAX liegt oder größer als SQL_CONNECT_OPT_DRVR_START ist.

Festlegen von Anweisungsoptionen auf Der Verbindungsebene

In ODBC 2. x, eine Anwendung könnte SQLSetConnectOption aufrufen, um eine Anweisungsoption festzulegen. Wenn dies geschehen ist, richtet der Treiber die Anweisungsoption als Standard für alle Anweisungen ein, die später für diese Verbindung zugeordnet werden. Es wird vom Treiber definiert, ob der Treiber die Anweisungsoption für vorhandene Anweisungen festlegt, die der angegebenen Verbindung zugeordnet sind.

Diese Funktion ist in ODBC 3*.x* veraltet. ODBC 3*.x*-Treiber müssen nur die Einstellung von ODBC 2 unterstützen. x-Anweisungsattribute auf Verbindungsebene, wenn sie mit ODBC 2 arbeiten möchten. x-Anwendungen, die dies tun. ODBC 3*.x*-Anwendungen sollten niemals Anweisungsattribute auf Verbindungsebene festlegen. ODBC 3*.x*-Anweisungsattribute können nicht auf Verbindungsebene festgelegt werden, mit Ausnahme der Attribute SQL_ATTR_METADATA_ID und SQL_ATTR_ASYNC_ENABLE, die sowohl Verbindungsattribute als auch Anweisungsattribute sind, und können entweder auf Verbindungs- oder Anweisungsebene festgelegt werden.