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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für