Treiberspezifische Datentypen, Deskriptortypen, Informationstypen, Diagnosetypen und Attribute

Treiber können treiberspezifische Werte für Folgendes zuordnen:

  • SQL-Datentypindikatoren Diese werden in ParameterType in SQLBindParameter und in DataType in SQLGetTypeInfo verwendet und von SQLColAttribute, SQLColumns, SQLDescribeCol, SQLGetTypeInfo, SQLDescribeParam, SQLProcedureColumns und SQLSpecialColumns zurückgegeben.

  • Deskriptorfelder Diese werden in FieldIdentifier in SQLColAttribute, SQLGetDescField und SQLSetDescField verwendet.

  • Diagnosefelder Diese werden in DiagIdentifier in SQLGetDiagField und SQLGetDiagRec verwendet.

  • Informationstypen Diese werden in InfoType in SQLGetInfo verwendet.

  • Verbinden ion- und Anweisungsattribute Diese werden in "Attribute" in SQLGet Verbinden Attr, SQLGetStmtAttr, SQLSet Verbinden Attr und SQLSetStmtAttr verwendet.

Für jedes dieser Elemente gibt es zwei Wertesätze: Werte, die für die Verwendung durch ODBC reserviert sind, und Werte, die für die Verwendung durch Treiber reserviert sind. Vor der Implementierung treiberspezifischer Werte muss ein Treiberschreiber einen Wert für jeden treiberspezifischen Typ, jedes Feld oder jedes Attribut aus open Group anfordern. Verwenden Sie für die Entwicklung neuer Treiber den in der folgenden Tabelle beschriebenen Bereich. Der ODBC 3.8-Treiber-Manager generiert keinen Fehler, wenn ein unbekannter Wert verwendet wird, der sich nicht im unten beschriebenen Bereich befindet. Spätere Versionen des Treiber-Managers generieren jedoch möglicherweise einen Fehler, wenn unbekannte Werte empfangen werden, die sich nicht im Bereich befinden.

Wenn eines dieser Werte an eine ODBC-Funktion übergeben wird, muss der Treiber überprüfen, ob der Wert gültig ist. Treiber geben SQLSTATE HYC00 (Optionales Feature nicht implementiert) für treiberspezifische Werte zurück, die für andere Treiber gelten.

Ab ODBC 3.8 können Treiberautoren treiberspezifische Attribute innerhalb eines reservierten Bereichs zuordnen.

Hinweis

Der ODBC 3.8-Treiber-Manager überprüft und erzwingt diese Bereiche weder für die Abwärtskompatibilität. Eine zukünftige Version des Treiber-Managers kann sie jedoch erzwingen.

Attributtyp ODBC-Datentyp Treiberspezifische Bereichsbasis Grenzwert für den treiberspezifischen Bereich ODBC-Konstante für treiberspezifische Wertebereichsbasis
SQL-Datentypindikatoren SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_SQL_TYPE_BASE
Deskriptorfelder SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DESCRIPTOR_BASE
Diagnosefelder SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DIAGNOSTIC_BASE
Informationstypen SQLUSMALLINT 0x4000 0x7FFF SQL_DRIVER_INFO_TYPE_BASE
Verbindungsattribute SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_CONNECT_ATTR_BASE
Anweisungsattribute SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_STATEMENT_ATTR_BASE

Hinweis

Treiberspezifische Datentypen, Beschreibungsfelder, Diagnosefelder, Informationstypen, Anweisungsattribute und Verbindungsattribute müssen in der Treiberdokumentation beschrieben werden. Wenn eines dieser Werte an eine ODBC-Funktion übergeben wird, muss der Treiber überprüfen, ob der Wert gültig ist. Treiber geben SQLSTATE HYC00 (Optionales Feature nicht implementiert) für treiberspezifische Werte zurück, die für andere Treiber gelten.

Die Basiswerte werden definiert, um die Treiberentwicklung zu erleichtern. Beispielsweise können treiberspezifische Diagnoseattribute im folgenden Format definiert werden:

SQL_DRIVER_DIAGNOSTIC_BASE+0, SQL_DRIVER_DIAGNOSTIC_BASE +1