Freigeben über


SQLGetInfo-Funktion

Konformität
Version eingeführt: ODBC 1.0 Standards Compliance: ISO 92

Zusammenfassung
SQLGetInfo gibt allgemeine Informationen über den Treiber und die Datenquelle zurück, die einer Verbindung zugeordnet ist.

Syntax

  
SQLRETURN SQLGetInfo(  
     SQLHDBC         ConnectionHandle,  
     SQLUSMALLINT    InfoType,  
     SQLPOINTER      InfoValuePtr,  
     SQLSMALLINT     BufferLength,  
     SQLSMALLINT *   StringLengthPtr);  

Argumente

ConnectionHandle
[Eingabe] Verbindungshandle.

InfoType
[Eingabe] Art der Informationen.

InfoValuePtr
[Ausgabe] Zeigen Sie auf einen Puffer, in dem die Informationen zurückgegeben werden sollen. Je nach angefordertem InfoType sind die zurückgegebenen Informationen eine der folgenden: eine null-gekündigte Zeichenfolge, ein SQLUSMALLINT-Wert, eine SQLUINTEGER-Bitmaske, ein SQLUINTEGER-Flag, ein SQLUINTEGER-Binärwert oder ein SQLULEN-Wert.

Wenn das InfoType-Argument SQL_DRIVER_HDESC oder SQL_DRIVER_HSTMT ist, ist das Argument InfoValuePtr sowohl Eingabe als auch Ausgabe. (Weitere Informationen finden Sie im SQL_DRIVER_HDESC oder SQL_DRIVER_HSTMT Beschreibungen weiter unten in dieser Funktionsbeschreibung.)

Wenn InfoValuePtr NULL ist, gibt StringLengthPtr weiterhin die Gesamtanzahl der Bytes zurück (mit Ausnahme des Nullendpunkts für Zeichendaten), die für die Rückgabe im Puffer verfügbar sind, auf den InfoValuePtr verweist.

BufferLength
[Eingabe] Länge des *InfoValuePtr-Puffers . Wenn der Wert in *InfoValuePtr keine Zeichenfolge ist oder InfoValuePtr ein Nullzeiger ist, wird das Argument BufferLength ignoriert. Der Treiber geht davon aus, dass die Größe von *InfoValuePtr SQLUSMALLINT oder SQLUINTEGER basierend auf dem InfoType ist. Wenn *InfoValuePtr eine Unicode-Zeichenfolge (beim Aufrufen von SQLGetInfoW) ist, muss das Argument BufferLength eine gerade Zahl sein. Andernfalls wird SQLSTATE HY090 (Ungültige Zeichenfolge oder Pufferlänge) zurückgegeben.

StringLengthPtr
[Ausgabe] Zeigen Sie auf einen Puffer, in dem die Gesamtanzahl der Bytes (mit Ausnahme des Nullendpunkts für Zeichendaten) zurückgegeben werden soll, die in *InfoValuePtr zurückgegeben werden können.

Wenn die Anzahl der zurückzugebenden Bytes größer oder gleich "BufferLength" ist, werden die Informationen in "*InfoValuePtr " in "BufferLength bytes minus der Länge eines Null-Beendigungszeichens abgeschnitten" und vom Treiber null beendet.

Für alle anderen Datentypen wird der Wert von BufferLength ignoriert, und der Treiber geht davon aus, dass die Größe von *InfoValuePtr SQLUSMALLINT oder SQLUINTEGER abhängig vom InfoType ist.

Gibt zurück

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR oder SQL_INVALID_HANDLE.

Diagnostik

Wenn SQLGetInfo entweder SQL_ERROR oder SQL_SUCCESS_WITH_INFO zurückgibt, kann ein zugeordneter SQLSTATE-Wert durch Aufrufen von SQLGetDiagRec mit einem HandleType von SQL_HANDLE_DBC und einem Handle of ConnectionHandle abgerufen werden. In der folgenden Tabelle sind die SQLSTATE-Werte aufgeführt, die in der Regel von SQLGetInfo zurückgegeben werden, und jede wird im Kontext dieser Funktion erläutert. Die Notation "(DM)" steht vor den Beschreibungen von SQLSTATEs, die vom Treiber-Manager zurückgegeben werden. Der rückgabecode, der jedem SQLSTATE-Wert zugeordnet ist, ist SQL_ERROR, sofern nicht anders angegeben.

SQLSTATE Error Beschreibung
01000 Allgemeiner Warnhinweis Treiberspezifische Informationsmeldung. (Funktion gibt SQL_SUCCESS_WITH_INFO zurück.)
01004 Zeichenfolgendaten, rechts abgeschnitten Der Puffer *InfoValuePtr war nicht groß genug, um alle angeforderten Informationen zurückzugeben. Daher wurden die Informationen abgeschnitten. Die Länge der angeforderten Informationen in der nicht korrekten Form wird in *StringLengthPtr zurückgegeben. (Funktion gibt SQL_SUCCESS_WITH_INFO zurück.)
08003 Verbindung nicht geöffnet (DM) Der Typ der in InfoType angeforderten Informationen erfordert eine offene Verbindung. Von den informationstypen, die von ODBC reserviert sind, können nur SQL_ODBC_VER ohne geöffnete Verbindung zurückgegeben werden.
08S01 Kommunikationslinkfehler Die Kommunikationsverbindung zwischen dem Treiber und der Datenquelle, mit der der Treiber verbunden wurde, ist fehlgeschlagen, bevor die Verarbeitung der Funktion abgeschlossen wurde.
HY000 Allgemeiner Fehler Es ist ein Fehler aufgetreten, für den kein spezifischer SQLSTATE-Wert vorhanden war und für den keine implementierungsspezifische SQLSTATE definiert wurde. Die von SQLGetDiagRec im *MessageText-Puffer zurückgegebene Fehlermeldung beschreibt den Fehler und dessen Ursache.
HY001 Speicherzuweisungsfehler Der Treiber konnte arbeitsspeicher nicht zuordnen, der zur Unterstützung der Ausführung oder Fertigstellung der Funktion erforderlich ist.
HY010 Funktionssequenzfehler (DM) SQLExecute, SQLExecDirect oder SQLMoreResults wurde für " StatementHandle " aufgerufen und SQL_PARAM_DATA_AVAILABLE zurückgegeben. Diese Funktion wurde aufgerufen, bevor Daten für alle gestreamten Parameter abgerufen wurden.
HY013 Speicherverwaltungsfehler Der Funktionsaufruf konnte nicht verarbeitet werden, da auf die zugrunde liegenden Speicherobjekte nicht zugegriffen werden konnte, möglicherweise aufgrund geringer Arbeitsspeicherbedingungen.
HY024 Ungültiger Attributwert (DM) Das InfoType-Argument wurde SQL_DRIVER_HSTMT, und der wert , auf den InfoValuePtr verweist, war kein gültiges Anweisungshandle.

(DM) Das InfoType-Argument wurde SQL_DRIVER_HDESC, und der wert , auf den InfoValuePtr verweist, war kein gültiger Deskriptorhandle.
HY090 Ungültige Zeichenfolgen- oder Pufferlänge (DM) Der für argument "BufferLength " angegebene Wert war kleiner als 0.

(DM) Der für BufferLength angegebene Wert war eine ungerade Zahl, und *InfoValuePtr war ein Unicode-Datentyp.
HY096 Informationstyp außerhalb des Bereichs Der für das Argument InfoType angegebene Wert war für die vom Treiber unterstützte ODBC-Version ungültig.
HY117 Die Verbindung wird aufgrund des unbekannten Transaktionsstatus angehalten. Es sind nur Trenn- und schreibgeschützte Funktionen zulässig. (DM) Weitere Informationen zum angehaltenen Zustand finden Sie unter SQLEndTran Function.
HYC00 Optionales Feld nicht implementiert Der für das Argument InfoType angegebene Wert war ein treiberspezifischer Wert, der vom Treiber nicht unterstützt wird.
HYT01 Verbindungstimeout abgelaufen Der Zeitraum für das Verbindungstimeout ist abgelaufen, bevor die Datenquelle auf die Anforderung geantwortet hat. Der Verbindungstimeoutzeitraum wird über SQLSetConnectAttr SQL_ATTR_CONNECTION_TIMEOUT festgelegt.
IM001 Dieser Treiber unterstützt diese Funktion nicht. (DM) Der Treiber, der dem ConnectionHandle entspricht, unterstützt die Funktion nicht.

Kommentare

Die derzeit definierten Informationstypen werden weiter unten in diesem Abschnitt in "Informationstypen" angezeigt. es wird erwartet, dass mehr definiert wird, um verschiedene Datenquellen zu nutzen. Eine Reihe von Informationstypen wird von ODBC reserviert; Treiberentwickler müssen Werte für ihre eigene treiberspezifische Verwendung aus Open Group reservieren. SQLGetInfo führt keine Unicode-Konvertierung oder Thunking durch (siehe Anhang A: ODBC-Fehlercodes der ODBC-Programmierreferenz) für treiberdefinierte InfoTypes. Weitere Informationen finden Sie unter treiberspezifische Datentypen, Beschreibungstypen, Informationstypen, Diagnosetypen und Attribute. Das Format der in *InfoValuePtr zurückgegebenen Informationen hängt vom angeforderten InfoType ab. SQLGetInfo gibt Informationen in einem von fünf verschiedenen Formaten zurück:

  • Eine mit Null beendete Zeichenfolge

  • Ein SQLUSMALLINT-Wert

  • Eine SQLUINTEGER-Bitmaske

  • Ein SQLUINTEGER-Wert

  • Ein SQLUINTEGER-Binärwert

Das Format jeder der folgenden Informationstypen wird in der Beschreibung des Typs angegeben. Die Anwendung muss den in *InfoValuePtr zurückgegebenen Wert entsprechend umwandeln. Ein Beispiel dafür, wie eine Anwendung Daten aus einer SQLUINTEGER-Bitmaske abrufen kann, finden Sie unter "Codebeispiel".

Ein Treiber muss einen Wert für jeden Informationstyp zurückgeben, der in den folgenden Tabellen definiert ist. Wenn ein Informationstyp nicht auf den Treiber oder die Datenquelle angewendet wird, gibt der Treiber einen der in der folgenden Tabelle aufgeführten Werte zurück.

Informationstyp Wert
Zeichenfolge ("Y" oder "N") "N"
Zeichenfolge (nicht "Y" oder "N") Leere Zeichenfolge
SQLUSMALLINT 0
SQLUINTEGER-Bitmaske oder SQLUINTEGER-Binärwert 0L

Wenn eine Datenquelle z. B. Prozeduren nicht unterstützt, gibt SQLGetInfo die in der folgenden Tabelle aufgeführten Werte für die Werte von InfoType zurück, die sich auf Prozeduren beziehen.

InfoType Wert
SQL_PROCEDURES "N"
SQL_ACCESSIBLE_PROCEDURES "N"
SQL_MAX_PROCEDURE_NAME_LEN 0
SQL_PROCEDURE_TERM Leere Zeichenfolge

SQLGetInfo gibt SQLSTATE HY096 (Ungültiger Argumentwert) für Werte von InfoType zurück, die sich im Bereich der Informationstypen befinden, die für die Verwendung durch ODBC reserviert sind, aber nicht von der vom Treiber unterstützten ODBC-Version definiert sind. Um zu bestimmen, welche Version von ODBC ein Treiber erfüllt, ruft eine Anwendung SQLGetInfo mit dem SQL_DRIVER_ODBC_VER Informationstyp auf. SQLGetInfo gibt SQLSTATE HYC00 (Optionales Feature nicht implementiert) für Werte von InfoType zurück, die sich im Bereich der Informationstypen befinden, die für die treiberspezifische Verwendung reserviert sind, aber vom Treiber nicht unterstützt werden.

Alle Aufrufe von SQLGetInfo erfordern eine offene Verbindung, außer wenn der InfoType SQL_ODBC_VER ist, der die Version des Treiber-Managers zurückgibt.

Informationstypen

In diesem Abschnitt werden die von SQLGetInfo unterstützten Informationstypen aufgeführt. Informationstypen werden kategorisiert und alphabetisch aufgelistet. Informationstypen, die für ODBC 3*.x* hinzugefügt oder umbenannt wurden, werden ebenfalls aufgeführt.

Treiberinformationen

Die folgenden Werte des InfoType-Arguments geben Informationen zum ODBC-Treiber zurück, z. B. die Anzahl der aktiven Anweisungen, den Datenquellennamen und die Complianceebene der Schnittstellenstandards:

SQL_ACTIVE_ENVIRONMENTS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_DATA_SOURCE_NAME
SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDBC
SQL_DRIVER_HDESC
SQL_DRIVER_HENV
SQL_DRIVER_HLIB
SQL_DRIVER_HSTMT
SQL_DRIVER_NAME
SQL_DRIVER_ODBC_VER
SQL_DRIVER_VER
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1

SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_FILE_USAGE
SQL_GETDATA_EXTENSIONS
SQL_INFO_SCHEMA_VIEWS
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_DRIVER_CONNECTIONS
SQL_ODBC_INTERFACE_CONFORMANCE
SQL_ODBC_STANDARD_CLI_CONFORMANCE
SQL_ODBC_VER
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_ROW_UPDATES
SQL_SEARCH_PATTERN_ESCAPE
SQL_SERVER_NAME
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2

Hinweis

Bei der Implementierung von SQLGetInfo kann ein Treiber die Leistung verbessern, indem die Anzahl der Gesendeten oder angeforderten Informationen vom Server minimiert wird.

DBMS-Produktinformationen

Die folgenden Werte des InfoType-Arguments geben Informationen zum DBMS-Produkt zurück, z. B. den DBMS-Namen und die Version:

SQL_DATABASE_NAME
SQL_DBMS_NAME

SQL_DBMS_VER

Datenquelleninformationen

Die folgenden Werte des InfoType-Arguments geben Informationen zur Datenquelle zurück, z. B. Cursormerkmale und Transaktionsfunktionen:

SQL_ACCESSIBLE_PROCEDURES
SQL_ACCESSIBLE_TABLES
SQL_BOOKMARK_PERSISTENCE
SQL_CATALOG_TERM
SQL_COLLATION_SEQ
SQL_CONCAT_NULL_BEHAVIOR
SQL_CURSOR_COMMIT_BEHAVIOR
SQL_CURSOR_ROLLBACK_BEHAVIOR
SQL_CURSOR_SENSITIVITY
SQL_DATA_SOURCE_READ_ONLY
SQL_DEFAULT_TXN_ISOLATION
SQL_DESCRIBE_PARAMETER

SQL_MULT_RESULT_SETS
SQL_MULTIPLE_ACTIVE_TXN
SQL_NEED_LONG_DATA_LEN
SQL_NULL_COLLATION
SQL_PROCEDURE_TERM
SQL_SCHEMA_TERM
SQL_SCROLL_OPTIONS
SQL_TABLE_TERM
SQL_TXN_CAPABLE
SQL_TXN_ISOLATION_OPTION
SQL_USER_NAME

Unterstützte SQL

Die folgenden Werte des InfoType-Arguments geben Informationen zu den SQL-Anweisungen zurück, die von der Datenquelle unterstützt werden. Die SQL-Syntax jedes Features, das von diesen Informationstypen beschrieben wird, ist die SQL-92-Syntax. Diese Informationstypen beschreiben nicht vollständig die gesamte SQL-92-Grammatik. Stattdessen beschreiben sie diese Teile der Grammatik, für die Datenquellen in der Regel unterschiedliche Unterstützungsebenen bieten. Insbesondere werden die meisten DDL-Anweisungen in SQL-92 behandelt.

Anwendungen sollten die allgemeine Ebene der unterstützten Grammatik aus dem informationstyp SQL_SQL_CONFORMANCE bestimmen und die anderen Informationstypen verwenden, um Abweichungen von der angegebenen Standardscomplianceebene zu ermitteln.

SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ALTER_TABLE
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_CATALOG_LOCATION
SQL_CATALOG_NAME
SQL_CATALOG_NAME_SEPARATOR
SQL_CATALOG_USAGE
SQL_COLUMN_ALIAS
SQL_CORRELATION_NAME
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_DDL_INDEX
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA

SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_EXPRESSIONS_IN_ORDERBY
SQL_GROUP_BY
SQL_IDENTIFIER_CASE
SQL_IDENTIFIER_QUOTE_CHAR
SQL_INDEX_KEYWORDS
SQL_INSERT_STATEMENT
SQL_INTEGRITY
SQL_KEYWORDS
SQL_LIKE_ESCAPE_CLAUSE
SQL_NON_NULLABLE_COLUMNS
SQL_OJ_CAPABILITIES
SQL_ORDER_BY_COLUMNS_IN_SELECT
SQL_OUTER_JOINS
SQL_PROCEDURES
SQL_QUOTED_IDENTIFIER_CASE
SQL_SCHEMA_USAGE
SQL_SPECIAL_CHARACTERS
SQL_SQL_CONFORMANCE
SQL_SUBQUERIES
SQL_UNION

SQL-Grenzwerte

Die folgenden Werte des InfoType-Arguments geben Informationen zu den Grenzwerten zurück, die auf Bezeichner und Klauseln in SQL-Anweisungen angewendet werden, z. B. die maximale Länge von Bezeichnern und die maximale Anzahl von Spalten in einer Auswahlliste. Einschränkungen können entweder durch den Treiber oder die Datenquelle auferlegt werden.

SQL_MAX_BINARY_LITERAL_LEN
SQL_MAX_CATALOG_NAME_LEN
SQL_MAX_CHAR_LITERAL_LEN
SQL_MAX_COLUMN_NAME_LEN
SQL_MAX_COLUMNS_IN_GROUP_BY
SQL_MAX_COLUMNS_IN_INDEX
SQL_MAX_COLUMNS_IN_ORDER_BY
SQL_MAX_COLUMNS_IN_SELECT
SQL_MAX_COLUMNS_IN_TABLE
SQL_MAX_CURSOR_NAME_LEN

SQL_MAX_IDENTIFIER_LEN
SQL_MAX_INDEX_SIZE
SQL_MAX_PROCEDURE_NAME_LEN
SQL_MAX_ROW_SIZE
SQL_MAX_ROW_SIZE_INCLUDES_LONG
SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_STATEMENT_LEN
SQL_MAX_TABLE_NAME_LEN
SQL_MAX_TABLES_IN_SELECT
SQL_MAX_USER_NAME_LEN

Skalare Funktionsinformationen

Die folgenden Werte des InfoType-Arguments geben Informationen zu den skalaren Funktionen zurück, die von der Datenquelle und dem Treiber unterstützt werden. Weitere Informationen zu Skalarfunktionen finden Sie in Anhang E: Skalare Funktionen.

SQL_CONVERT_FUNCTIONS
SQL_NUMERIC_FUNCTIONS
SQL_STRING_FUNCTIONS
SQL_SYSTEM_FUNCTIONS

SQL_TIMEDATE_ADD_INTERVALS
SQL_TIMEDATE_DIFF_INTERVALS
SQL_TIMEDATE_FUNCTIONS

Konvertierungsinformationen

Die folgenden Werte des InfoType-Arguments geben eine Liste der SQL-Datentypen zurück, in die die Datenquelle den angegebenen SQL-Datentyp mit der CONVERT-Skalarfunktion konvertieren kann:

SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_DATE
SQL_CONVERT_DECIMAL
SQL_CONVERT_DOUBLE
SQL_CONVERT_FLOAT
SQL_CONVERT_INTEGER
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH

SQL_CONVERT_LONGVARBINARY
SQL_CONVERT_LONGVARCHAR
SQL_CONVERT_NUMERIC
SQL_CONVERT_REAL
SQL_CONVERT_SMALLINT
SQL_CONVERT_TIME
SQL_CONVERT_TIMESTAMP
SQL_CONVERT_TINYINT
SQL_CONVERT_VARBINARY
SQL_CONVERT_VARCHAR

Für ODBC 3.x hinzugefügte Informationstypen

Die folgenden Werte des InfoType-Arguments wurden für ODBC 3.x hinzugefügt:

SQL_ACTIVE_ENVIRONMENTS
SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_CATALOG_NAME
SQL_COLLATION_SEQ
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_CURSOR_SENSITIVITY
SQL_DDL_INDEX
SQL_DESCRIBE_PARAMETER
SQL_DM_VER

SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDESC
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA
SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_INFO_SCHEMA_VIEWS
SQL_INSERT_STATEMENT
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_IDENTIFIER_LEN
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2
SQL_XOPEN_CLI_YEAR

Für ODBC 3.x umbenannte Informationstypen

Die folgenden Werte des InfoType-Arguments wurden für ODBC 3.x umbenannt.

Alter Name Neuer Name
SQL_ACTIVE_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
SQL_ACTIVE_STATEMENTS SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_OWNER_NAME_LEN SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_QUALIFIER_NAME_LEN SQL_MAX_CATALOG_NAME_LEN
SQL_ODBC_SQL_OPT_IEF SQL_INTEGRITY
SQL_OWNER_TERM SQL_SCHEMA_TERM
SQL_OWNER_USAGE SQL_SCHEMA_USAGE
SQL_QUALIFIER_LOCATION SQL_CATALOG_LOCATION
SQL_QUALIFIER_NAME_SEPARATOR SQL_CATALOG_NAME_SEPARATOR
SQL_QUALIFIER_TERM SQL_CATALOG_TERM
SQL_QUALIFIER_USAGE SQL_CATALOG_USAGE

In ODBC 3.x veraltete Informationstypen

Die folgenden Werte des InfoType-Arguments sind in ODBC 3.x veraltet. ODBC 3.x-Treiber müssen diese Informationstypen weiterhin für die Abwärtskompatibilität mit ODBC 2.x-Anwendungen unterstützen. (Weitere Informationen zu diesen Typen finden Sie unter SQLGetInfo-Unterstützung in Anhang G: Treiberrichtlinien für Abwärtskompatibilität.)

SQL_FETCH_DIRECTION
SQL_LOCK_TYPES
SQL_ODBC_API_CONFORMANCE
SQL_ODBC_SQL_CONFORMANCE

SQL_POS_OPERATIONS
SQL_POSITIONED_STATEMENTS
SQL_SCROLL_CONCURRENCY
SQL_STATIC_SENSITIVITY

Beschreibungen des Informationstyps

In der folgenden Tabelle sind alphabetisch die einzelnen Informationstypen, die Version von ODBC, in der sie eingeführt wurde, und deren Beschreibung aufgeführt.

Informationstyp ODBC-Version Beschreibung
SQL_ACCESSIBLE_PROCEDURES 1.0 Eine Zeichenfolge: "Y", wenn der Benutzer alle von SQLProcedures zurückgegebenen Prozeduren ausführen kann; "N", wenn möglicherweise Prozeduren zurückgegeben werden, die der Benutzer nicht ausführen kann.
SQL_ACCESSIBLE_TABLES 1.0 Eine Zeichenfolge: "Y", wenn der Benutzer garantiert SELECT-Berechtigungen für alle Tabellen enthält, die von SQLTables zurückgegeben werden; "N", wenn möglicherweise Tabellen zurückgegeben werden, auf die der Benutzer nicht zugreifen kann.
SQL_ACTIVE_ENVIRONMENTS 3.0 Ein SQLUSMALLINT-Wert, der die maximale Anzahl aktiver Umgebungen angibt, die der Treiber unterstützen kann. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.
SQL_AGGREGATE_FUNCTIONS 3.0 Eine SQLUINTEGER-Bitmaske zur Aufzählungsunterstützung für Aggregationsfunktionen:
SQL_AF_ALL
SQL_AF_AVG
SQL_AF_COUNT
SQL_AF_DISTINCT
SQL_AF_MAX
SQL_AF_MIN
SQL_AF_SUM

Ein SQL-92 Entry Level-conformant-Treiber gibt immer alle diese Optionen wie unterstützt zurück.
SQL_ALTER_DOMAIN 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der ALTER DOMAIN-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle. Ein SQL-92 Full Level-kompatibler Treiber gibt immer alle Bitmasken zurück. Ein Rückgabewert von "0" bedeutet, dass die ALTER DOMAIN-Anweisung nicht unterstützt wird.

Die SQL-92- oder FIPS-Konformitätsstufe, auf der dieses Feature unterstützt werden muss, wird in Klammern neben jeder Bitmaske angezeigt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_AD_ADD_DOMAIN_CONSTRAINT = Das Hinzufügen einer Domäneneinschränkung wird unterstützt (Vollständige Ebene)
SQL_AD_ADD_DOMAIN_DEFAULT = <Alter domain set domain><default clause> is supported (Full level)
SQL_AD_CONSTRAINT_NAME_DEFINITION = <Einschränkungsnamendefinitionsklausel> wird für die Namensdomäneneinschränkung (Zwischenebene) unterstützt.
SQL_AD_DROP_DOMAIN_CONSTRAINT = <drop domain constraint clause> is supported (Full level)
SQL_AD_DROP_DOMAIN_DEFAULT = <Standardklausel> für Domänenablage><wird unterstützt (Vollständige Ebene)

Die folgenden Bits geben die unterstützten <Einschränkungsattribute> an, wenn <die Domäneneinschränkung> hinzugefügt wird (das SQL_AD_ADD_DOMAIN_CONSTRAINT Bit festgelegt ist):
SQL_AD_ADD_CONSTRAINT_DEFERRABLE (Vollständige Ebene)
SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE (Vollständige Ebene)
SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED (Vollständige Ebene)
SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE (Vollständige Ebene)
SQL_ALTER_TABLE 2.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der ALTER TABLE-Anweisung aufzählt, die von der Datenquelle unterstützt wird.

Die SQL-92- oder FIPS-Konformitätsstufe, auf der dieses Feature unterstützt werden muss, wird in Klammern neben jeder Bitmaske angezeigt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_AT_ADD_COLUMN_COLLATION = <Spaltenklausel> hinzufügen wird unterstützt, wobei die Möglichkeit zum Angeben der Spaltensortierung (Vollständige Ebene) (ODBC 3.0)
SQL_AT_ADD_COLUMN_DEFAULT = <Spaltenklausel> hinzufügen wird unterstützt, mit der Möglichkeit, Spaltenstandardwerte (FIPS-Übergangsstufe) (ODBC 3.0) anzugeben.
SQL_AT_ADD_COLUMN_SINGLE = <Spalte> hinzufügen wird unterstützt (FIPS-Übergangsebene) (ODBC 3.0)
SQL_AT_ADD_CONSTRAINT = <Spaltenklausel> hinzufügen wird unterstützt, mit der Möglichkeit, Spalteneinschränkungen (FIPS-Übergangsstufe) (ODBC 3.0) anzugeben.
SQL_AT_ADD_TABLE_CONSTRAINT = <Add table constraint> clause is supported (FIPS Transition level) (ODBC 3.0)
SQL_AT_CONSTRAINT_NAME_DEFINITION = <Einschränkungsnamendefinition> wird für Die Benennung von Spalten- und Tabelleneinschränkungen (Zwischenebene) (ODBC 3.0) unterstützt.
SQL_AT_DROP_COLUMN_CASCADE = <Drop Column> CASCADE wird unterstützt (FIPS-Übergangsebene) (ODBC 3.0)
SQL_AT_DROP_COLUMN_DEFAULT = <Standardklausel> für Spaltenablage><wird unterstützt (Zwischenebene) (ODBC 3.0)
SQL_AT_DROP_COLUMN_RESTRICT = <Drop Column> RESTRICT wird unterstützt (FIPS-Übergangsstufe) (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = <Drop Column> RESTRICT wird unterstützt (FIPS-Übergangsstufe) (ODBC 3.0)
SQL_AT_SET_COLUMN_DEFAULT = <Spaltensatz-Standardklausel> für Spaltensätze><wird unterstützt (Zwischenebene) (ODBC 3.0)

Die folgenden Bits geben die Unterstützungseinschränkungsattribute <> an, wenn die Angabe von Spalten- oder Tabelleneinschränkungen unterstützt wird (das SQL_AT_ADD_CONSTRAINT Bit ist festgelegt):
SQL_AT_CONSTRAINT_INITIALLY_DEFERRED (Vollständige Ebene) (ODBC 3.0)
SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE (Vollständige Ebene) (ODBC 3.0)
SQL_AT_CONSTRAINT_DEFERRABLE (Vollständige Ebene) (ODBC 3.0)
SQL_AT_CONSTRAINT_NON_DEFERRABLE (Vollständige Ebene) (ODBC 3.0)
SQL_ASYNC_DBC_FUNCTIONS 3.8 Ein SQLUINTEGER-Wert, der angibt, ob der Treiber Funktionen asynchron auf dem Verbindungshandle ausführen kann.

SQL_ASYNC_DBC_CAPABLE = Der Treiber kann Verbindungsfunktionen asynchron ausführen.
SQL_ASYNC_DBC_NOT_CAPABLE = Der Treiber kann Verbindungsfunktionen nicht asynchron ausführen.
SQL_ASYNC_MODE 3.0 Ein SQLUINTEGER-Wert, der die Ebene der asynchronen Unterstützung im Treiber angibt:

SQL_AM_CONNECTION = asynchrone Ausführung auf Verbindungsebene wird unterstützt. Entweder befinden sich alle Anweisungshandles, die einem bestimmten Verbindungshandle zugeordnet sind, im asynchronen Modus oder alle im synchronen Modus. Ein Anweisungshandle für eine Verbindung kann nicht im asynchronen Modus ausgeführt werden, während sich ein anderes Anweisungshandle für dieselbe Verbindung im synchronen Modus befindet und umgekehrt.
SQL_AM_STATEMENT = asynchrone Ausführung auf Anweisungsebene wird unterstützt. Einige Anweisungshandles, die einem Verbindungshandle zugeordnet sind, können sich im asynchronen Modus befinden, während andere Anweisungshandles für dieselbe Verbindung im synchronen Modus sind.
SQL_AM_NONE = Asynchroner Modus wird nicht unterstützt.
SQL_ASYNC_NOTIFICATION 3.8 Ein SQLUINTEGER-Wert, der angibt, ob der Treiber asynchrone Benachrichtigung unterstützt:

SQL_ASYNC_NOTIFICATION_CAPABLE = Asynchrone Ausführungsbenachrichtigung wird vom Treiber unterstützt.
SQL_ASYNC_NOTIFICATION_NOT_CAPABLE = Asynchrone Ausführungsbenachrichtigung wird vom Treiber nicht unterstützt.

Es gibt zwei Kategorien von asynchronen ODBC-Vorgängen: asynchrone Vorgänge auf Verbindungsebene und asynchrone Vorgänge auf Anweisungsebene. Wenn ein Treiber SQL_ASYNC_NOTIFICATION_CAPABLE zurückgibt, muss er Benachrichtigungen für alle APIs unterstützen, die er asynchron ausführen kann.
SQL_BATCH_ROW_COUNT 3.0 Eine SQLUINTEGER-Bitmaske, die das Verhalten des Treibers im Hinblick auf die Verfügbarkeit der Zeilenanzahl aufzählt. Die folgenden Bitmasken werden zusammen mit dem Informationstyp verwendet:

SQL_BRC_ROLLED_UP = Zeilenanzahl für aufeinander folgende INSERT-, DELETE- oder UPDATE-Anweisungen wird in einem Rollup ausgeführt. Wenn dieses Bit nicht festgelegt ist, stehen zeilenanzahlen für jede Anweisung zur Verfügung.
SQL_BRC_PROCEDURES = Zeilenanzahl (falls vorhanden) sind verfügbar, wenn ein Batch in einer gespeicherten Prozedur ausgeführt wird. Wenn Zeilenanzahl verfügbar ist, können sie je nach SQL_BRC_ROLLED_UP Bit rollup oder einzeln verfügbar sein.
SQL_BRC_EXPLICIT = Zeilenanzahl( falls vorhanden) verfügbar sind, wenn ein Batch direkt durch Aufrufen von SQLExecute oder SQLExecDirect ausgeführt wird. Wenn Zeilenanzahl verfügbar ist, können sie je nach SQL_BRC_ROLLED_UP Bit rollup oder einzeln verfügbar sein.
SQL_BATCH_SUPPORT 3.0 Eine SQLUINTEGER-Bitmaske, die die Unterstützung des Treibers für Batches aufzählt. Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Ebene unterstützt wird:

SQL_BS_SELECT_EXPLICIT = Der Treiber unterstützt explizite Batches, die Ergebnissatz-Generierungsanweisungen enthalten können.
SQL_BS_ROW_COUNT_EXPLICIT = Der Treiber unterstützt explizite Batches, die Zeilenanzahl generierende Anweisungen enthalten können.
SQL_BS_SELECT_PROC = Der Treiber unterstützt explizite Prozeduren, die ergebnissatzgenerierende Anweisungen enthalten können.
SQL_BS_ROW_COUNT_PROC = Der Treiber unterstützt explizite Prozeduren, die Zeilenanzahl generierende Anweisungen enthalten können.
SQL_BOOKMARK_PERSISTENCE 2.0 Eine SQLUINTEGER-Bitmaske, die die Vorgänge aufzählt, über die Lesezeichen beibehalten werden. Die folgenden Bitmasken werden zusammen mit dem Flag verwendet, um zu bestimmen, welche Optionsmarken beibehalten werden:

SQL_BP_CLOSE = Lesezeichen sind gültig, nachdem eine Anwendung SQLFreeStmt mit der Option SQL_CLOSE aufgerufen hat, oder SQLCloseCursor, um den mit einer Anweisung verknüpften Cursor zu schließen.
SQL_BP_DELETE = Die Textmarke für eine Zeile ist gültig, nachdem diese Zeile gelöscht wurde.
SQL_BP_DROP = Lesezeichen sind gültig, nachdem eine Anwendung SQLFreeHandle mit einem HandleType von SQL_HANDLE_STMT aufruft, um eine Anweisung abzulegen.
SQL_BP_TRANSACTION = Lesezeichen sind gültig, nachdem eine Anwendung eine Transaktion ausgeführt oder zurückgesetzt hat.
SQL_BP_UPDATE = Die Textmarke für eine Zeile ist gültig, nachdem eine Spalte in dieser Zeile aktualisiert wurde, einschließlich der Schlüsselspalten.
SQL_BP_OTHER_HSTMT = Eine textmarke, die einer Anweisung zugeordnet ist, kann mit einer anderen Anweisung verwendet werden. Sofern SQL_BP_CLOSE oder SQL_BP_DROP nicht angegeben ist, muss der Cursor auf der ersten Anweisung geöffnet sein.
SQL_CATALOG_LOCATION 2.0 Ein SQLUSMALLINT-Wert, der die Position des Katalogs in einem qualifizierten Tabellennamen angibt:

SQL_CL_START
SQL_CL_END
Beispielsweise gibt ein Xbase-Treiber SQL_CL_START zurück, da sich der Verzeichnisname (Katalogname) am Anfang des Tabellennamens befindet, wie in \EMPDATA\EMP. DBF. Ein ORACLE Server-Treiber gibt SQL_CL_END zurück, da sich der Katalog am Ende des Tabellennamens befindet, wie in ADMIN. EMP@EMPDATA.

Ein SQL-92 Full Level-conformant-Treiber gibt immer SQL_CL_START zurück. Ein Wert von 0 wird zurückgegeben, wenn Kataloge von der Datenquelle nicht unterstützt werden. Um festzustellen, ob Kataloge unterstützt werden, ruft eine Anwendung SQLGetInfo mit dem SQL_CATALOG_NAME Informationstyp auf.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_QUALIFIER_LOCATION umbenannt.
SQL_CATALOG_NAME 3.0 Eine Zeichenfolge: "Y", wenn der Server Katalognamen unterstützt, oder "N", wenn dies nicht der Fall ist.

Ein SQL-92 Full Level-conformant-Treiber gibt immer "Y" zurück.
SQL_CATALOG_NAME_SEPARATOR 1.0 Eine Zeichenfolge: das Zeichen oder die Zeichen, das die Datenquelle als Trennzeichen zwischen einem Katalognamen und dem qualifizierten Namenselement definiert, das folgt oder vorangestellt ist.

Eine leere Zeichenfolge wird zurückgegeben, wenn Kataloge von der Datenquelle nicht unterstützt werden. Um festzustellen, ob Kataloge unterstützt werden, ruft eine Anwendung SQLGetInfo mit dem SQL_CATALOG_NAME Informationstyp auf. Ein SQL-92 Full Level-conformant-Treiber gibt immer "." zurück.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_QUALIFIER_NAME_SEPARATOR umbenannt.
SQL_CATALOG_TERM 1.0 Eine Zeichenfolge mit dem Namen des Datenquellenanbieters für einen Katalog; z. B. "Datenbank" oder "Verzeichnis". Diese Zeichenfolge kann in Groß-, Klein- oder Kleinschreibung vorliegen.

Eine leere Zeichenfolge wird zurückgegeben, wenn Kataloge von der Datenquelle nicht unterstützt werden. Um festzustellen, ob Kataloge unterstützt werden, ruft eine Anwendung SQLGetInfo mit dem SQL_CATALOG_NAME Informationstyp auf. Ein SQL-92 Full Level-conformant-Treiber gibt immer "Katalog" zurück.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_QUALIFIER_TERM umbenannt.
SQL_CATALOG_USAGE 2.0 Eine SQLUINTEGER-Bitmaske, die die Anweisungen aufzählt, in denen Kataloge verwendet werden können.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, wo Kataloge verwendet werden können:
SQL_CU_DML_STATEMENTS = Kataloge werden in allen Datenmanipulationssprache-Anweisungen unterstützt: SELECT, INSERT, UPDATE, DELETE und falls unterstützt, SELECT FOR UPDATE und positionierte Aktualisierungs- und Löschanweisungen.
SQL_CU_PROCEDURE_INVOCATION = Kataloge werden in der ODBC-Prozeduraufruf-Anweisung unterstützt.
SQL_CU_TABLE_DEFINITION = Kataloge werden in allen Tabellendefinitionsanweisungen unterstützt: CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE und DROP VIEW.
SQL_CU_INDEX_DEFINITION = Kataloge werden in allen Indexdefinitionsanweisungen unterstützt: CREATE INDEX und DROP INDEX.
SQL_CU_PRIVILEGE_DEFINITION = Kataloge werden in allen Berechtigungsdefinitionsanweisungen unterstützt: GRANT und REVOKE.

Ein Wert von 0 wird zurückgegeben, wenn Kataloge von der Datenquelle nicht unterstützt werden. Um festzustellen, ob Kataloge unterstützt werden, ruft eine Anwendung SQLGetInfo mit dem SQL_CATALOG_NAME Informationstyp auf. Ein SQL-92 Full level-conformant driver will always return a bitmask with all of these bits set.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_QUALIFIER_USAGE umbenannt.
SQL_COLLATION_SEQ 3.0 Der Name der Sortierreihenfolge. Dies ist eine Zeichenfolge, die den Namen der Standardsortierung für den Standardzeichensatz für diesen Server angibt (z. B. "ISO 8859-1" oder EBCDIC). Wenn dies unbekannt ist, wird eine leere Zeichenfolge zurückgegeben. Ein SQL-92 Full Level-conformant-Treiber gibt immer eine nicht leere Zeichenfolge zurück.
SQL_COLUMN_ALIAS 2.0 Eine Zeichenfolge: "Y", wenn die Datenquelle Spaltenaliasen unterstützt; andernfalls "N".

Ein Spaltenalias ist ein alternativer Name, der für eine Spalte in der Auswahlliste mithilfe einer AS-Klausel angegeben werden kann. Ein SQL-92 Entry Level-conformant-Treiber gibt immer "Y" zurück.
SQL_CONCAT_NULL_BEHAVIOR 1.0 Ein SQLUSMALLINT-Wert, der angibt, wie die Datenquelle die Verkettung von NULL-Datentypspalten mit Nicht-NULL-Wert-Zeichen-Datentypspalten behandelt:
SQL_CB_NULL = Ergebnis ist NULL-Wert.
SQL_CB_NON_NULL = Ergebnis ist eine Verkettung von Nicht-NULL-Wertspalten oder -spalten.

Ein SQL-92 Entry Level-conformant-Treiber gibt immer SQL_CB_NULL zurück.
SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_GUID
SQL_CONVERT_DATE
SQL_CONVERT_DECIMAL
SQL_CONVERT_DOUBLE
SQL_CONVERT_FLOAT
SQL_CONVERT_INTEGER
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_LONGVARBINARY
SQL_CONVERT_LONGVARCHAR
SQL_CONVERT_NUMERIC
SQL_CONVERT_REAL
SQL_CONVERT_SMALLINT
SQL_CONVERT_TIME
SQL_CONVERT_TIMESTAMP
SQL_CONVERT_TINYINT
SQL_CONVERT_VARBINARY
SQL_CONVERT_VARCHAR
1.0 Eine SQLUINTEGER-Bitmaske. Die Bitmaske gibt die Konvertierungen an, die von der Datenquelle mit der CONVERT-Skalarfunktion für Daten des Typs unterstützt werden, der im InfoType benannt ist. Wenn die Bitmaske null ist, unterstützt die Datenquelle keine Konvertierungen aus Daten des benannten Typs, einschließlich der Konvertierung in denselben Datentyp.

Um beispielsweise festzustellen, ob eine Datenquelle die Konvertierung von SQL_INTEGER Daten in den SQL_BIGINT Datentyp unterstützt, ruft eine Anwendung SQLGetInfo mit dem InfoType von SQL_CONVERT_INTEGER auf. Die Anwendung führt einen AND-Vorgang mit der zurückgegebenen Bitmaske und SQL_CVT_BIGINT aus. Wenn der resultierende Wert nicht null ist, wird die Konvertierung unterstützt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Konvertierungen unterstützt werden:
SQL_CVT_BIGINT (ODBC 1.0)
SQL_CVT_BINARY (ODBC 1.0)
SQL_CVT_BIT (ODBC 1.0)
SQL_CVT_GUID (ODBC 3.5)
SQL_CVT_CHAR (ODBC 1.0)
SQL_CVT_DATE (ODBC 1.0)
SQL_CVT_DECIMAL (ODBC 1.0)
SQL_CVT_DOUBLE (ODBC 1.0)
SQL_CVT_FLOAT (ODBC 1.0)
SQL_CVT_INTEGER (ODBC 1.0)
SQL_CVT_INTERVAL_YEAR_MONTH (ODBC 3.0)
SQL_CVT_INTERVAL_DAY_TIME (ODBC 3.0)
SQL_CVT_LONGVARBINARY (ODBC 1.0)
SQL_CVT_LONGVARCHAR (ODBC 1.0)
SQL_CVT_NUMERIC (ODBC 1.0)
SQL_CVT_REAL (ODBC 1.0)
SQL_CVT_SMALLINT (ODBC 1.0)
SQL_CVT_TIME (ODBC 1.0)
SQL_CVT_TIMESTAMP (ODBC 1.0)
SQL_CVT_TINYINT (ODBC 1.0)
SQL_CVT_VARBINARY (ODBC 1.0)
SQL_CVT_VARCHAR (ODBC 1.0)
SQL_CONVERT_FUNCTIONS 1.0 Eine SQLUINTEGER-Bitmaske, die die skalaren Konvertierungsfunktionen aufzählt, die vom Treiber und der zugehörigen Datenquelle unterstützt werden.

Die folgende Bitmaske wird verwendet, um zu bestimmen, welche Konvertierungsfunktionen unterstützt werden:
SQL_FN_CVT_CASTSQL_FN_CVT_CONVERT
SQL_CORRELATION_NAME 1.0 Ein SQLUSMALLINT-Wert, der angibt, ob Tabellenkorrelationsnamen unterstützt werden:
SQL_CN_NONE = Korrelationsnamen werden nicht unterstützt.
SQL_CN_DIFFERENT = Korrelationsnamen werden unterstützt, müssen sich jedoch von den Namen der tabellen unterscheiden, die sie darstellen.
SQL_CN_ANY = Korrelationsnamen werden unterstützt und können ein beliebiger gültiger benutzerdefinierter Name sein.

Ein SQL-92 Entry Level-conformant-Treiber gibt immer SQL_CN_ANY zurück.
SQL_CREATE_ASSERTION 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der CREATE ASSERTION-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_CA_CREATE_ASSERTION

Die folgenden Bits geben das unterstützte Einschränkungsattribut an, wenn die Möglichkeit zum expliziten Angeben von Einschränkungsattributen unterstützt wird (siehe SQL_ALTER_TABLE und SQL_CREATE_TABLE Informationstypen):
SQL_CA_CONSTRAINT_INITIALLY_DEFERRED
SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE
SQL_CA_CONSTRAINT_DEFERRABLE
SQL_CA_CONSTRAINT_NON_DEFERRABLE

Ein SQL-92 Full Level-conformant-Treiber gibt immer alle diese Optionen wie unterstützt zurück. Ein Rückgabewert von "0" bedeutet, dass die CREATE ASSERTION-Anweisung nicht unterstützt wird.
SQL_CREATE_CHARACTER_SET 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der CREATE CHARACTER SET-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_CCS_CREATE_CHARACTER_SET
SQL_CCS_COLLATE_CLAUSE
SQL_CCS_LIMITED_COLLATION

Ein SQL-92 Full Level-conformant-Treiber gibt immer alle diese Optionen wie unterstützt zurück. Ein Rückgabewert von "0" bedeutet, dass die CREATE CHARACTER SET-Anweisung nicht unterstützt wird.
SQL_CREATE_COLLATION 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der CREATE COLLATION-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgende Bitmaske wird verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_CCOL_CREATE_COLLATION

Ein SQL-92 Full Level-conformant-Treiber gibt diese Option immer wie unterstützt zurück. Ein Rückgabewert von "0" bedeutet, dass die CREATE COLLATION-Anweisung nicht unterstützt wird.
SQL_CREATE_DOMAIN 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der CREATE DOMAIN-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_CDO_CREATE_DOMAIN = Die CREATE DOMAIN-Anweisung wird unterstützt (Zwischenebene).
SQL_CDO_CONSTRAINT_NAME_DEFINITION = <Einschränkungsnamendefinition> wird für die Benennung von Domäneneinschränkungen (Zwischenebene) unterstützt.

Die folgenden Bits geben die Möglichkeit zum Erstellen von Spalteneinschränkungen an:
SQL_CDO_DEFAULT = Angeben von Domäneneinschränkungen wird unterstützt (Zwischenstufe)
SQL_CDO_CONSTRAINT = Angeben von Domänenstandard wird unterstützt (Zwischenstufe)
SQL_CDO_COLLATION = Angeben der Domänensortierung wird unterstützt (Vollständige Ebene)

Die folgenden Bits geben die unterstützten Einschränkungsattribute an, wenn die Angabe von Domäneneinschränkungen unterstützt wird (SQL_CDO_DEFAULT festgelegt wird):
SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED (Vollständige Ebene)
SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE (Vollständige Ebene)
SQL_CDO_CONSTRAINT_DEFERRABLE (Vollständige Ebene)
SQL_CDO_CONSTRAINT_NON_DEFERRABLE (Vollständige Ebene)

Ein Rückgabewert von "0" bedeutet, dass die CREATE DOMAIN-Anweisung nicht unterstützt wird.
SQL_CREATE_SCHEMA 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der CREATE SCHEMA-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_CS_CREATE_SCHEMA
SQL_CS_AUTHORIZATION
SQL_CS_DEFAULT_CHARACTER_SET

Ein SQL-92 Intermediate Level-Conformant-Treiber gibt immer die SQL_CS_CREATE_SCHEMA und SQL_CS_AUTHORIZATION Optionen wie unterstützt zurück. Diese müssen auch auf sql-92 Entry-Ebene unterstützt werden, aber nicht unbedingt als SQL-Anweisungen. Ein SQL-92 Full Level-conformant-Treiber gibt immer alle diese Optionen wie unterstützt zurück.
SQL_CREATE_TABLE 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der CREATE TABLE-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die SQL-92- oder FIPS-Konformitätsstufe, auf der dieses Feature unterstützt werden muss, wird in Klammern neben jeder Bitmaske angezeigt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_CT_CREATE_TABLE = Die CREATE TABLE-Anweisung wird unterstützt. (Einstiegsebene)
SQL_CT_TABLE_CONSTRAINT = Angeben von Tabelleneinschränkungen wird unterstützt (FIPS-Übergangsstufe)
SQL_CT_CONSTRAINT_NAME_DEFINITION = Die <Einschränkungsnamendefinitionsklausel> wird für die Benennung von Spalten- und Tabelleneinschränkungen (Zwischenebene) unterstützt.

Die folgenden Bits geben die Möglichkeit zum Erstellen temporärer Tabellen an:
SQL_CT_COMMIT_PRESERVE = Gelöschte Zeilen werden beim Commit beibehalten. (Vollständige Ebene)
SQL_CT_COMMIT_DELETE = Gelöschte Zeilen werden beim Commit gelöscht. (Vollständige Ebene)
SQL_CT_GLOBAL_TEMPORARY = Globale temporäre Tabellen können erstellt werden. (Vollständige Ebene)
SQL_CT_LOCAL_TEMPORARY = Lokale temporäre Tabellen können erstellt werden. (Vollständige Ebene)

Die folgenden Bits geben die Möglichkeit zum Erstellen von Spalteneinschränkungen an:
SQL_CT_COLUMN_CONSTRAINT = Angeben von Spalteneinschränkungen wird unterstützt (FIPS-Übergangsstufe)
SQL_CT_COLUMN_DEFAULT = Angeben von Spaltenstandard wird unterstützt (FIPS-Übergangsstufe)
SQL_CT_COLUMN_COLLATION = Angeben der Spaltensortierung wird unterstützt (Vollständige Ebene)

Die folgenden Bits geben die unterstützten Einschränkungsattribute an, wenn die Angabe von Spalten- oder Tabelleneinschränkungen unterstützt wird:
SQL_CT_CONSTRAINT_INITIALLY_DEFERRED (Vollständige Ebene)
SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE (Vollständige Ebene)
SQL_CT_CONSTRAINT_DEFERRABLE (Vollständige Ebene)
SQL_CT_CONSTRAINT_NON_DEFERRABLE (Vollständige Ebene)
SQL_CREATE_TRANSLATION 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der CREATE TRANSLATION-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgende Bitmaske wird verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_CTR_CREATE_TRANSLATION

Ein SQL-92 Full Level-conformant-Treiber gibt diese Optionen immer wie unterstützt zurück. Ein Rückgabewert von "0" bedeutet, dass die CREATE TRANSLATION-Anweisung nicht unterstützt wird.
SQL_CREATE_VIEW 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der CREATE VIEW-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_CV_CREATE_VIEW
SQL_CV_CHECK_OPTION
SQL_CV_CASCADED
SQL_CV_LOCAL

Ein Rückgabewert von "0" bedeutet, dass die CREATE VIEW-Anweisung nicht unterstützt wird.

Ein SQL-92-Konformer Treiber der Einstiegsebene gibt immer die SQL_CV_CREATE_VIEW und SQL_CV_CHECK_OPTION Optionen wie unterstützt zurück.

Ein SQL-92 Full Level-conformant-Treiber gibt immer alle diese Optionen wie unterstützt zurück.
SQL_CURSOR_COMMIT_BEHAVIOR 1.0 Ein SQLUSMALLINT-Wert, der angibt, wie sich ein COMMIT-Vorgang auf Cursor und vorbereitete Anweisungen in der Datenquelle auswirkt (das Verhalten der Datenquelle beim Commit einer Transaktion).

Der Wert dieses Attributs entspricht dem aktuellen Status der nächsten Einstellung: SQL_COPT_SS_PRESERVE_CURSORS.
SQL_CB_DELETE = Cursor schließen und vorbereitete Anweisungen löschen. Um den Cursor erneut zu verwenden, muss die Anwendung die Anweisung erneut ausführen und erneut ausführen.
SQL_CB_CLOSE = Cursor schließen. Für vorbereitete Anweisungen kann die Anwendung SQLExecute für die Anweisung aufrufen, ohne SQLPrepare erneut aufzurufen. Der Standardwert für den SQL ODBC-Treiber ist SQL_CB_CLOSE. Dies bedeutet, dass der SQL-ODBC-Treiber den Cursor schließt, wenn Sie eine Transaktion ausführen.
SQL_CB_PRESERVE = Cursor an derselben Position beibehalten wie vor dem COMMIT-Vorgang . Die Anwendung kann weiterhin Daten abrufen oder den Cursor schließen und die Anweisung erneut ausführen, ohne sie erneut zu reparieren.
SQL_CURSOR_ROLLBACK_BEHAVIOR 1.0 Ein SQLUSMALLINT-Wert, der angibt, wie sich ein ROLLBACK-Vorgang auf Cursor und vorbereitete Anweisungen in der Datenquelle auswirkt:
SQL_CB_DELETE = Cursor schließen und vorbereitete Anweisungen löschen. Um den Cursor erneut zu verwenden, muss die Anwendung die Anweisung erneut ausführen und erneut ausführen.
SQL_CB_CLOSE = Cursor schließen. Für vorbereitete Anweisungen kann die Anwendung SQLExecute für die Anweisung aufrufen, ohne SQLPrepare erneut aufzurufen.
SQL_CB_PRESERVE = Cursor an derselben Position beibehalten wie vor dem ROLLBACK-Vorgang . Die Anwendung kann weiterhin Daten abrufen oder den Cursor schließen und die Anweisung erneut ausführen, ohne sie erneut zu reparieren.
SQL_CURSOR_SENSITIVITY 3.0 Ein SQLUINTEGER-Wert, der die Unterstützung der Cursorempfindlichkeit angibt:
SQL_INSENSITIVE = Alle Cursor auf dem Anweisungshandle zeigen das Resultset an, ohne änderungen widerzuspiegeln, die von einem anderen Cursor innerhalb derselben Transaktion vorgenommen wurden.
SQL_UNSPECIFIED = Es ist nicht angegeben, ob Cursor auf dem Anweisungshandle die Änderungen sichtbar machen, die an einem Resultset von einem anderen Cursor innerhalb derselben Transaktion vorgenommen wurden. Cursor auf dem Anweisungshandle machen möglicherweise keine, einige oder alle derartigen Änderungen sichtbar.
SQL_SENSITIVE = Cursor sind für Änderungen vertraulich, die von anderen Cursorn innerhalb derselben Transaktion vorgenommen wurden.

Ein SQL-92 Entry Level-conformant-Treiber gibt immer die option SQL_UNSPECIFIED wie unterstützt zurück.

Ein SQL-92 Full Level-conformant-Treiber gibt immer die option SQL_INSENSITIVE wie unterstützt zurück.
SQL_DATA_SOURCE_NAME 1.0 Eine Zeichenfolge mit dem Datenquellennamen, der während der Verbindung verwendet wurde. Wenn die Anwendung SQLConnect aufgerufen hat, ist dies der Wert des szDSN-Arguments. Wenn die Anwendung SQLDriverConnect oder SQLBrowseConnect aufgerufen hat, ist dies der Wert des DSN-Schlüsselworts im Verbindungszeichenfolge an den Treiber übergeben. Wenn das Verbindungszeichenfolge nicht das DSN-Schlüsselwort (z. B. wenn es das DRIVER-Schlüsselwort enthält) enthält, handelt es sich um eine leere Zeichenfolge.
SQL_DATA_SOURCE_READ_ONLY 1.0 Eine Zeichenfolge. "Y", wenn die Datenquelle auf den SCHREIBSCHUTZmodus festgelegt ist, "N", wenn dies andernfalls der Fehler ist.

Dieses Merkmal bezieht sich nur auf die Datenquelle selbst; es ist kein Merkmal des Treibers, der den Zugriff auf die Datenquelle ermöglicht. Ein Treiber mit Lese-/Schreibzugriff kann mit einer Datenquelle verwendet werden, die schreibgeschützt ist. Wenn ein Treiber schreibgeschützt ist, müssen alle Datenquellen schreibgeschützt sein und SQL_DATA_SOURCE_READ_ONLY zurückgeben.
SQL_DATABASE_NAME 1.0 Eine Zeichenfolge mit dem Namen der aktuell verwendeten Datenbank, wenn die Datenquelle ein benanntes Objekt namens "Database" definiert.

In ODBC 3.x kann der für diesen InfoType zurückgegebene Wert auch durch Aufrufen von SQLGetConnectAttr mit einem Attributargument von SQL_ATTR_CURRENT_CATALOG zurückgegeben werden.
SQL_DATETIME_LITERALS 3.0 Eine SQLUINTEGER-Bitmaske zum Aufzählen der sql-92-Datetime-Literale, die von der Datenquelle unterstützt werden. Beachten Sie, dass dies die in der SQL-92-Spezifikation aufgeführten Datetime-Literale sind und von den durch ODBC definierten Datetime-Literal-Escapeklauseln getrennt sind. Weitere Informationen zu den ODBC-Datetime-Literal-Escapeklauseln finden Sie unter Date, Time und Timestamp Literals.

Ein FIPS-konformer Treiber der Übergangsstufe gibt immer den Wert "1" in der Bitmaske für die Bits in der folgenden Liste zurück. Ein Wert von "0" bedeutet, dass SQL-92 Datetime-Literale nicht unterstützt werden.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Literale unterstützt werden:
SQL_DL_SQL92_DATE
SQL_DL_SQL92_TIME
SQL_DL_SQL92_TIMESTAMP
SQL_DL_SQL92_INTERVAL_YEAR
SQL_DL_SQL92_INTERVAL_MONTH
SQL_DL_SQL92_INTERVAL_DAY
SQL_DL_SQL92_INTERVAL_HOUR
SQL_DL_SQL92_INTERVAL_MINUTE
SQL_DL_SQL92_INTERVAL_SECOND
SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH
SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR
SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE
SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND
SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE
SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND
SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND
SQL_DBMS_NAME 1.0 Eine Zeichenfolge mit dem Namen des DBMS-Produkts, auf das vom Treiber zugegriffen wird.
SQL_DBMS_VER 1.0 Eine Zeichenfolge, die die Version des DBMS-Produkts angibt, auf die vom Treiber zugegriffen wird. Die Version ist das Format ##.#.#.####, wobei die ersten beiden Ziffern die Hauptversion sind, die nächsten beiden Ziffern die Nebenversion und die letzten vier Ziffern die Version der Version sind. Der Treiber muss die DBMS-Produktversion in diesem Formular rendern, kann aber auch die produktspezifische DBMS-Version anfügen. Beispiel: "04.01.0000 Rdb 4.1".
SQL_DDL_INDEX 3.0 Ein SQLUINTEGER-Wert, der die Unterstützung für die Erstellung und das Ablegen von Indizes angibt:
SQL_DI_CREATE_INDEX
SQL_DI_DROP_INDEX
SQL_DEFAULT_TXN_ISOLATION 1.0 Ein SQLUINTEGER-Wert, der die standardmäßige Transaktionsisolationsstufe angibt, die vom Treiber oder der Datenquelle unterstützt wird, oder null, wenn die Datenquelle Transaktionen nicht unterstützt. Die folgenden Begriffe werden verwendet, um Transaktionsisolationsstufen zu definieren:
Dirty Read Transaction 1 ändert eine Zeile. Transaktion 2 liest die geänderte Zeile vor dem Commit der Änderung durch Transaktion 1. Wenn Transaktion 1 die Änderung zurückgibt, hat Transaktion 2 eine Zeile gelesen, die als nie vorhanden gilt.
Nicht wiederholbare Lesetransaktion 1 liest eine Zeile. Transaktion 2 aktualisiert oder löscht diese Zeile und führt einen Commit für diese Änderung durch. Wenn Transaktion 1 versucht, die Zeile erneut zu lesen, erhält sie unterschiedliche Zeilenwerte oder ermittelt, dass die Zeile gelöscht wurde.
Phantom Transaction 1 liest eine Reihe von Zeilen, die einige Suchkriterien erfüllen. Transaktion 2 generiert eine oder mehrere Zeilen (entweder durch Einfügungen oder Aktualisierungen), die den Suchkriterien entsprechen. Wenn Transaktion 1 die Anweisung erneut ausführt, die die Zeilen liest, empfängt sie einen anderen Satz von Zeilen.

Wenn die Datenquelle Transaktionen unterstützt, gibt der Treiber eine der folgenden Bitmasken zurück:
SQL_TXN_READ_UNCOMMITTED = Schmutzige Lesevorgänge, nicht wiederholbare Lesevorgänge und Phantome sind möglich.
SQL_TXN_READ_COMMITTED = Geänderte Lesevorgänge sind nicht möglich. Nicht wiederholbare Lesevorgänge und Phantome sind möglich.
SQL_TXN_REPEATABLE_READ = Geänderte Lesevorgänge und nicht wiederholbare Lesevorgänge sind nicht möglich. Phantome sind möglich.
SQL_TXN_SERIALIZABLE = Transaktionen sind serialisierbar. Serialisierbare Transaktionen lassen keine schmutzigen Lesevorgänge, nicht wiederholbaren Lesevorgänge oder Phantome zu.
SQL_DESCRIBE_PARAMETER 3.0 Eine Zeichenfolge: "Y", wenn Parameter beschrieben werden können; "N", wenn nicht.

Ein SQL-92 Full Level-conformant-Treiber gibt in der Regel "Y" zurück, da er die DESCRIBE INPUT-Anweisung unterstützt. Da dies nicht direkt die zugrunde liegende SQL-Unterstützung angibt, werden die Beschreibungen von Parametern möglicherweise nicht unterstützt, auch in einem SQL-92-Treiber mit vollständiger Ebene konformer Treiber.
SQL_DM_VER 3.0 Eine Zeichenfolge mit der Version des Treiber-Managers. Die Version ist das Formular ##.#.#.###.######, wobei:
Der erste Satz von zwei Ziffern ist die ODBC-Hauptversion, wie durch die Konstante SQL_SPEC_MAJOR angegeben.
Der zweite Satz von zwei Ziffern ist die Neben-ODBC-Version, wie durch die Konstante SQL_SPEC_MINOR angegeben.
Der dritte Satz von vier Ziffern ist die Hauptbuildnummer des Treiber-Managers.
Der letzte Satz von vier Ziffern ist die Nebenbuildnummer des Treiber-Managers.
Die Windows 7-Treiber-Manager-Version ist 03.80. Die Windows 8-Treiber-Manager-Version ist 03.81.
SQL_DRIVER_AWARE_POOLING_SUPPORTED 3.8 Ein SQLUINTEGER-Wert, der angibt, ob der Treiber treiberfähige Pooling unterstützt. (Weitere Informationen finden Sie unter Treiberfähige Verbindungspooling.

SQL_DRIVER_AWARE_POOLING_CAPABLE gibt an, dass der Treiber treiberfähige Poolingmechanismus unterstützen kann.
SQL_DRIVER_AWARE_POOLING_NOT_CAPABLE weist darauf hin, dass der Treiber den Mechanismus für den treiberfähigen Pool nicht unterstützen kann.

Ein Treiber muss nicht SQL_DRIVER_AWARE_POOLING_SUPPORTED implementieren, und der Treiber-Manager berücksichtigt nicht den Rückgabewert des Treibers.
SQL_DRIVER_HDBCSQL_DRIVER_HENV 1.0 Ein SQLULEN-Wert, das Umgebungshandle oder verbindungshandle des Treibers, bestimmt durch das Argument InfoType.

Diese Informationstypen werden allein vom Treiber-Manager implementiert.
SQL_DRIVER_HDESC 3.0 Ein SQLULEN-Wert, der Beschreibungshandle des Treibers, der vom Deskriptorhandle des Treiber-Managers bestimmt wird, der von der Anwendung an Eingaben in *InfoValuePtr übergeben werden muss. In diesem Fall ist InfoValuePtr sowohl ein Eingabe- als auch ein Ausgabeargument. Das in *InfoValuePtr übergebene Eingabedeskriptor-Handle muss entweder explizit oder implizit für das ConnectionHandle zugewiesen worden sein.

Die Anwendung sollte eine Kopie des Beschreibungshandle des Treiber-Managers erstellen, bevor sqlGetInfo mit diesem Informationstyp aufgerufen wird, um sicherzustellen, dass das Handle bei der Ausgabe nicht überschrieben wird.

Dieser Informationstyp wird allein vom Treiber-Manager implementiert.
SQL_DRIVER_HLIB 2.0 Ein SQLULEN-Wert, der Hinweis aus der Ladebibliothek, die beim Laden der Treiber-DLL auf einem Microsoft Windows-Betriebssystem oder dessen Entsprechung auf einem anderen Betriebssystem an den Treiber-Manager zurückgegeben wurde. Das Handle ist nur für das im Aufruf von SQLGetInfo angegebene Verbindungshandle gültig.

Dieser Informationstyp wird allein vom Treiber-Manager implementiert.
SQL_DRIVER_HSTMT 1.0 Ein SQLULEN-Wert, der vom Handle der Driver Manager-Anweisung bestimmt wird, der für eingaben in *InfoValuePtr aus der Anwendung übergeben werden muss. In diesem Fall ist InfoValuePtr sowohl ein Eingabe- als auch ein Ausgabeargument. Das in *InfoValuePtr übergebene Eingabe-Anweisungshandle muss für das Argument ConnectionHandle zugewiesen worden sein.

Die Anwendung sollte eine Kopie des Anweisungshandle des Treiber-Managers erstellen, bevor sie SQLGetInfo mit diesem Informationstyp aufruft, um sicherzustellen, dass das Handle bei der Ausgabe nicht überschrieben wird.

Dieser Informationstyp wird allein vom Treiber-Manager implementiert.
SQL_DRIVER_NAME 1.0 Eine Zeichenfolge mit dem Dateinamen des Treibers, der für den Zugriff auf die Datenquelle verwendet wird.
SQL_DRIVER_ODBC_VER 2.0 Eine Zeichenfolge mit der vom Treiber unterstützten ODBC-Version. Die Version ist das Format ##.##, wobei die ersten beiden Ziffern die Hauptversion sind und die nächsten beiden Ziffern die Nebenversion sind. SQL_SPEC_MAJOR und SQL_SPEC_MINOR definieren die Haupt- und Nebenversionsnummern. Für die in diesem Handbuch beschriebene VERSION von ODBC sind dies 3 und 0, und der Treiber sollte "03.00" zurückgeben.

Der ODBC-Treiber-Manager ändert den Rückgabewert von SQLGetInfo(SQL_DRIVER_ODBC_VER) nicht, um die Abwärtskompatibilität für vorhandene Anwendungen aufrechtzuerhalten. Der Treiber gibt an, welcher Wert zurückgegeben wird. Ein Treiber, der die C-Datentyperweiterung unterstützt, muss jedoch 3.8 (oder höher) zurückgeben, wenn eine Anwendung SQLSetEnvAttr aufruft, um SQL_ATTR_ODBC_VERSION auf 3.8 festzulegen. Weitere Informationen finden Sie unter C-Datentypen in ODBC.
SQL_DRIVER_VER 1.0 Eine Zeichenfolge mit der Version des Treibers und optional eine Beschreibung des Treibers. Mindestens ist die Version des Formulars ##.#.#.#####, wobei die ersten beiden Ziffern die Hauptversion sind, die nächsten beiden Ziffern die Nebenversion und die letzten vier Ziffern die Version der Version sind.
SQL_DROP_ASSERTION 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der DROP ASSERTION-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgende Bitmaske wird verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_DA_DROP_ASSERTION

Ein SQL-92 Full Level-conformant-Treiber gibt diese Option immer wie unterstützt zurück.
SQL_DROP_CHARACTER_SET 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der DROP CHARACTER SET-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgende Bitmaske wird verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_DCS_DROP_CHARACTER_SET

Ein SQL-92 Full Level-conformant-Treiber gibt diese Option immer wie unterstützt zurück.
SQL_DROP_COLLATION 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der DROP COLLATION-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgende Bitmaske wird verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_DC_DROP_COLLATION

Ein SQL-92 Full Level-conformant-Treiber gibt diese Option immer wie unterstützt zurück.
SQL_DROP_DOMAIN 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der DROP DOMAIN-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_DD_DROP_DOMAIN
SQL_DD_CASCADE
SQL_DD_RESTRICT

Ein SQL-92 Intermediate Level-conformant-Treiber gibt immer alle diese Optionen wie unterstützt zurück.
SQL_DROP_SCHEMA 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der DROP SCHEMA-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_DS_DROP_SCHEMA
SQL_DS_CASCADE
SQL_DS_RESTRICT

Ein SQL-92 Intermediate Level-conformant-Treiber gibt immer alle diese Optionen wie unterstützt zurück.
SQL_DROP_TABLE 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der DROP TABLE-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_DT_DROP_TABLE
SQL_DT_CASCADE
SQL_DT_RESTRICT

Ein FIPS-konformer Treiber für Die Übergangsstufe gibt immer alle diese Optionen wie unterstützt zurück.
SQL_DROP_TRANSLATION 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der DROP TRANSLATION-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgende Bitmaske wird verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_DTR_DROP_TRANSLATION

Ein SQL-92 Full Level-conformant-Treiber gibt diese Option immer wie unterstützt zurück.
SQL_DROP_VIEW 3.0 Eine SQLUINTEGER-Bitmaske, die die Klauseln in der DROP VIEW-Anweisung aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln unterstützt werden:
SQL_DV_DROP_VIEW
SQL_DV_CASCADE
SQL_DV_RESTRICT

Ein FIPS-konformer Treiber für Die Übergangsstufe gibt immer alle diese Optionen wie unterstützt zurück.
SQL_DYNAMIC_CURSOR_ATTRIBUTES1 3.0 Eine SQLUINTEGER-Bitmaske, die die Attribute eines dynamischen Cursors beschreibt, die vom Treiber unterstützt werden. Diese Bitmaske enthält die erste Teilmenge der Attribute; die zweite Teilmenge finden Sie unter SQL_DYNAMIC_CURSOR_ATTRIBUTES2.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Attribute unterstützt werden:
SQL_CA1_NEXT = Ein FetchOrientation-Argument von SQL_FETCH_NEXT wird in einem Aufruf von SQLFetchScroll unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_ABSOLUTE = FetchOrientation-Argumente von SQL_FETCH_FIRST, SQL_FETCH_LAST und SQL_FETCH_ABSOLUTE werden in einem Aufruf von SQLFetchScroll unterstützt, wenn der Cursor ein dynamischer Cursor ist. (Das abzurufene Rowset ist unabhängig von der aktuellen Cursorposition.)
SQL_CA1_RELATIVE = FetchOrientation-Argumente von SQL_FETCH_PRIOR und SQL_FETCH_RELATIVE werden in einem Aufruf von SQLFetchScroll unterstützt, wenn der Cursor ein dynamischer Cursor ist. (Das abzurufene Rowset hängt von der aktuellen Cursorposition ab. Beachten Sie, dass dies von SQL_FETCH_NEXT getrennt ist, da in einem Vorwärtscursor nur SQL_FETCH_NEXT unterstützt wird.)
SQL_CA1_BOOKMARK = Ein FetchOrientation-Argument von SQL_FETCH_BOOKMARK wird in einem Aufruf von SQLFetchScroll unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_LOCK_EXCLUSIVE = Ein LockType-Argument von SQL_LOCK_EXCLUSIVE wird in einem Aufruf von SQLSetPos unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_LOCK_NO_CHANGE = Ein LockType-Argument von SQL_LOCK_NO_CHANGE wird in einem Aufruf von SQLSetPos unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_LOCK_UNLOCK = Ein LockType-Argument von SQL_LOCK_UNLOCK wird in einem Aufruf von SQLSetPos unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_POS_POSITION = Ein Operation-Argument von SQL_POSITION wird in einem Aufruf von SQLSetPos unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_POS_UPDATE = Ein Operation-Argument von SQL_UPDATE wird in einem Aufruf von SQLSetPos unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_POS_DELETE = Ein Operation-Argument von SQL_DELETE wird in einem Aufruf von SQLSetPos unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_POS_REFRESH = Ein Operation-Argument von SQL_REFRESH wird in einem Aufruf von SQLSetPos unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_POSITIONED_UPDATE = Ein UPDATE WHERE CURRENT OF SQL-Anweisung wird unterstützt, wenn der Cursor ein dynamischer Cursor ist. (Ein SQL-92-Treiber für die Einstiegsebene gibt diese Option immer wie unterstützt zurück.)
SQL_CA1_POSITIONED_DELETE = EINE DELETE WHERE CURRENT OF SQL-Anweisung wird unterstützt, wenn der Cursor ein dynamischer Cursor ist. (Ein SQL-92-Treiber für die Einstiegsebene gibt diese Option immer wie unterstützt zurück.)
SQL_CA1_SELECT_FOR_UPDATE = EINE SELECT FOR UPDATE SQL-Anweisung wird unterstützt, wenn der Cursor ein dynamischer Cursor ist. (Ein SQL-92-Treiber für die Einstiegsebene gibt diese Option immer wie unterstützt zurück.)
SQL_CA1_BULK_ADD = Ein Operation-Argument von SQL_ADD wird in einem Aufruf von SQLBulkOperations unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_BULK_UPDATE_BY_BOOKMARK = Ein Operation-Argument von SQL_UPDATE_BY_BOOKMARK wird in einem Aufruf von SQLBulkOperations unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_BULK_DELETE_BY_BOOKMARK = Ein Operation-Argument von SQL_DELETE_BY_BOOKMARK wird in einem Aufruf von SQLBulkOperations unterstützt, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA1_BULK_FETCH_BY_BOOKMARK = Ein Operation-Argument von SQL_FETCH_BY_BOOKMARK wird in einem Aufruf von SQLBulkOperations unterstützt, wenn der Cursor ein dynamischer Cursor ist.

Ein SQL-92-Treiber mit Konformer Ebene gibt in der Regel die SQL_CA1_NEXT, SQL_CA1_ABSOLUTE und SQL_CA1_RELATIVE Optionen wie unterstützt zurück, da er bildlauffähige Cursor über die eingebettete SQL FETCH-Anweisung unterstützt. Da dies nicht direkt die zugrunde liegende SQL-Unterstützung bestimmt, werden bildlauffähige Cursor möglicherweise nicht unterstützt, auch für einen SQL-92-Treiber mit mittlerer Ebene.
SQL_DYNAMIC_CURSOR_ATTRIBUTES2 3.0 Eine SQLUINTEGER-Bitmaske, die die Attribute eines dynamischen Cursors beschreibt, die vom Treiber unterstützt werden. Diese Bitmaske enthält die zweite Teilmenge von Attributen; die erste Teilmenge finden Sie unter SQL_DYNAMIC_CURSOR_ATTRIBUTES1.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Attribute unterstützt werden:
SQL_CA2_READ_ONLY_CONCURRENCY = Ein schreibgeschützter dynamischer Cursor, in dem keine Aktualisierungen zulässig sind, wird unterstützt. (Das attribut der SQL_ATTR_CONCURRENCY-Anweisung kann für einen dynamischen Cursor SQL_CONCUR_READ_ONLY werden).
SQL_CA2_LOCK_CONCURRENCY = Ein dynamischer Cursor, der die niedrigste Sperrebene verwendet, um sicherzustellen, dass die Zeile aktualisiert werden kann. (Das attribut der SQL_ATTR_CONCURRENCY-Anweisung kann für einen dynamischen Cursor SQL_CONCUR_LOCK werden.) Diese Sperren müssen mit der durch das SQL_ATTR_TXN_ISOLATION Verbindungsattribute festgelegten Transaktionsisolationsstufe konsistent sein.
SQL_CA2_OPT_ROWVER_CONCURRENCY = Ein dynamischer Cursor, der das optimistische Parallelitätssteuerelement verwendet, das Zeilenversionen vergleicht, wird unterstützt. (Das attribut der SQL_ATTR_CONCURRENCY-Anweisung kann für einen dynamischen Cursor SQL_CONCUR_ROWVER werden.)
SQL_CA2_OPT_VALUES_CONCURRENCY = Ein dynamischer Cursor, der das optimistische Parallelitätssteuerelement verwendet, das Werte vergleicht, wird unterstützt. (Das attribut der SQL_ATTR_CONCURRENCY-Anweisung kann für einen dynamischen Cursor SQL_CONCUR_VALUES werden.)
SQL_CA2_SENSITIVITY_ADDITIONS = Hinzugefügte Zeilen sind für einen dynamischen Cursor sichtbar; Der Cursor kann zu diesen Zeilen scrollen. (Wenn diese Zeilen dem Cursor hinzugefügt werden, ist treiberabhängig.)
SQL_CA2_SENSITIVITY_DELETIONS = Gelöschte Zeilen sind für einen dynamischen Cursor nicht mehr verfügbar und lassen kein "Loch" im Resultset. nachdem der dynamische Cursor aus einer gelöschten Zeile gescrollt wurde, kann er nicht zu dieser Zeile zurückkehren.
SQL_CA2_SENSITIVITY_UPDATES = Aktualisierungen an Zeilen sind für einen dynamischen Cursor sichtbar; Wenn der dynamische Cursor von einer aktualisierten Zeile scrollt und zu einer aktualisierten Zeile zurückkehrt, sind die vom Cursor zurückgegebenen Daten die aktualisierten Daten, nicht die ursprünglichen Daten.
SQL_CA2_MAX_ROWS_SELECT = Das attribut der SQL_ATTR_MAX_ROWS-Anweisung wirkt sich auf SELECT-Anweisungen aus, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA2_MAX_ROWS_INSERT = Das attribut der SQL_ATTR_MAX_ROWS-Anweisung wirkt sich auf INSERT-Anweisungen aus, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA2_MAX_ROWS_DELETE = Das attribut der SQL_ATTR_MAX_ROWS-Anweisung wirkt sich auf DELETE-Anweisungen aus, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA2_MAX_ROWS_UPDATE = Das attribut der SQL_ATTR_MAX_ROWS-Anweisung wirkt sich auf UPDATE-Anweisungen aus, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA2_MAX_ROWS_CATALOG = Das Attribut SQL_ATTR_MAX_ROWS-Anweisung wirkt sich auf CATALOG-Resultsets aus, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA2_MAX_ROWS_AFFECTS_ALL = Das attribut der SQL_ATTR_MAX_ROWS-Anweisung wirkt sich auf SELECT-, INSERT-, DELETE- und UPDATE-Anweisungen und CATALOG-Resultsets aus, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA2_CRC_EXACT = Die genaue Zeilenanzahl ist im diagnosefeld SQL_DIAG_CURSOR_ROW_COUNT verfügbar, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA2_CRC_APPROXIMATE = Eine ungefähre Zeilenanzahl ist im diagnosefeld SQL_DIAG_CURSOR_ROW_COUNT verfügbar, wenn der Cursor ein dynamischer Cursor ist.
SQL_CA2_SIMULATE_NON_UNIQUE = Der Treiber garantiert nicht, dass simulierte, positionierte Aktualisierungs- oder Löschanweisungen nur eine Zeile betreffen, wenn der Cursor ein dynamischer Cursor ist; es liegt in der Verantwortung der Anwendung, dies zu gewährleisten. (Wenn eine Anweisung mehr als eine Zeile betrifft, SQLExecute oder SQLExecDirect gibt SQLSTATE 01001 [Cursorvorgangskonflikt]) zurück. Um dieses Verhalten festzulegen, ruft die Anwendung SQLSetStmtAttr auf, wobei das attribut SQL_ATTR_SIMULATE_CURSOR auf SQL_SC_NON_UNIQUE festgelegt ist.
SQL_CA2_SIMULATE_TRY_UNIQUE = Der Treiber versucht sicherzustellen, dass simulierte, positionierte Aktualisierungs- oder Löschanweisungen nur eine Zeile betreffen, wenn der Cursor ein dynamischer Cursor ist. Der Treiber führt immer solche Anweisungen aus, auch wenn er sich auf mehrere Zeilen auswirken kann, z. B. wenn kein eindeutiger Schlüssel vorhanden ist. (Wenn eine Anweisung mehr als eine Zeile betrifft, SQLExecute oder SQLExecDirect gibt SQLSTATE 01001 [Cursorvorgangskonflikt]) zurück. Um dieses Verhalten festzulegen, ruft die Anwendung SQLSetStmtAttr auf, wobei das attribut SQL_ATTR_SIMULATE_CURSOR auf SQL_SC_TRY_UNIQUE festgelegt ist.
SQL_CA2_SIMULATE_UNIQUE = Der Treiber garantiert, dass simulierte Aktualisierungs- oder Löschanweisungen nur eine Zeile betreffen, wenn der Cursor ein dynamischer Cursor ist. Wenn der Treiber dies für eine bestimmte Anweisung nicht garantieren kann, gibt SQLExecDirect oder SQLPrepare SQLSTATE 01001 zurück (Cursorvorgangskonflikt). Um dieses Verhalten festzulegen, ruft die Anwendung SQLSetStmtAttr auf, wobei das attribut SQL_ATTR_SIMULATE_CURSOR auf SQL_SC_UNIQUE festgelegt ist.
SQL_EXPRESSIONS_IN_ORDERBY 1.0 Eine Zeichenfolge: "Y", wenn die Datenquelle Ausdrücke in der ORDER BY-Liste unterstützt; "N", wenn dies nicht der Fall ist.
SQL_FILE_USAGE 2.0 Ein SQLUSMALLINT-Wert, der angibt, wie ein einzelstufiger Treiber Dateien in einer Datenquelle direkt behandelt:
SQL_FILE_NOT_SUPPORTED = Der Treiber ist kein einzelstufiger Treiber. Beispielsweise ist ein ORACLE-Treiber ein zweistufiger Treiber.
SQL_FILE_TABLE = Ein einstufiger Treiber behandelt Dateien in einer Datenquelle als Tabellen. Beispielsweise behandelt ein Xbase-Treiber jede Xbase-Datei als Tabelle.
SQL_FILE_CATALOG = Ein einstufiger Treiber behandelt Dateien in einer Datenquelle als Katalog. Beispielsweise behandelt ein Microsoft Access-Treiber jede Microsoft Access-Datei als vollständige Datenbank.

Anhand dessen kann eine Anwendung bestimmen, wie Benutzer Daten auswählen. Xbase-Benutzer denken z. B. häufig an Daten, die in Dateien gespeichert sind, während ORACLE- und Microsoft Access-Benutzer in der Regel Daten als in Tabellen gespeichert betrachten.

Wenn ein Benutzer eine Xbase-Datenquelle auswählt, kann die Anwendung das allgemeine Dialogfeld "Windows-Datei öffnen " anzeigen. Wenn der Benutzer eine Microsoft Access- oder ORACLE-Datenquelle auswählt, kann die Anwendung ein benutzerdefiniertes Dialogfeld "Tabelle auswählen" anzeigen.
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 3.0 Eine SQLUINTEGER-Bitmaske, die die Attribute eines Vorwärtscursors beschreibt, die vom Treiber unterstützt werden. Diese Bitmaske enthält die erste Teilmenge der Attribute; die zweite Teilmenge finden Sie unter SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Attribute unterstützt werden:
SQL_CA1_NEXT
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Beschreibungen dieser Bitmasken finden Sie unter SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (und ersetzen Sie "Vorwärtscursor" für "dynamischen Cursor" in den Beschreibungen).
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 3.0 Eine SQLUINTEGER-Bitmaske, die die Attribute eines Vorwärtscursors beschreibt, die vom Treiber unterstützt werden. Diese Bitmaske enthält die zweite Teilmenge von Attributen; die erste Teilmenge finden Sie unter SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Attribute unterstützt werden:
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Beschreibungen dieser Bitmasken finden Sie unter SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (und ersetzen Sie "Vorwärtscursor" für "dynamischen Cursor" in den Beschreibungen).
SQL_GETDATA_EXTENSIONS 2.0 Eine SQLUINTEGER-Bitmaske, die Erweiterungen auf SQLGetData aufzählt.

Die folgenden Bitmasken werden zusammen mit dem Flag verwendet, um zu bestimmen, welche allgemeinen Erweiterungen der Treiber für SQLGetData unterstützt:
SQL_GD_ANY_COLUMN = SQLGetData kann für jede ungebundene Spalte aufgerufen werden, einschließlich derer vor der letzten gebundenen Spalte. Beachten Sie, dass die Spalten in der Reihenfolge der aufsteigenden Spaltennummer aufgerufen werden müssen, es sei denn, SQL_GD_ANY_ORDER wird ebenfalls zurückgegeben.
SQL_GD_ANY_ORDER = SQLGetData kann für ungebundene Spalten in beliebiger Reihenfolge aufgerufen werden. Beachten Sie, dass SQLGetData nur für Spalten nach der letzten gebundenen Spalte aufgerufen werden kann, es sei denn, SQL_GD_ANY_COLUMN wird ebenfalls zurückgegeben.
SQL_GD_BLOCK = SQLGetData kann für eine ungebundene Spalte in einer beliebigen Zeile in einem Block (wobei die Rowset-Größe größer als 1 ist) von Daten aufgerufen werden, nachdem diese Zeile mit SQLSetPos positioniert wurde.
SQL_GD_BOUND = SQLGetData kann zusätzlich zu ungebundenen Spalten für gebundene Spalten aufgerufen werden. Ein Treiber kann diesen Wert nur zurückgeben, wenn er auch SQL_GD_ANY_COLUMN zurückgibt.
SQL_GD_OUTPUT_PARAMS = SQLGetData kann aufgerufen werden, um Ausgabeparameterwerte zurückzugeben. Weitere Informationen finden Sie unter Abrufen von Ausgabeparametern mit SQLGetData.

SQLGetData ist erforderlich, um Daten nur aus ungebundenen Spalten zurückzugeben, die nach der letzten gebundenen Spalte auftreten, in der Reihenfolge der Erhöhung der Spaltennummer aufgerufen werden und sich nicht in einer Zeile in einem Zeilenblock befinden.

Wenn ein Treiber Textmarken unterstützt (entweder feste Länge oder variable Länge), muss der Aufruf von SQLGetData für Spalte 0 unterstützt werden. Diese Unterstützung ist erforderlich, unabhängig davon, was der Treiber für einen Aufruf von SQLGetInfo mit dem SQL_GETDATA_EXTENSIONS InfoType zurückgibt.
SQL_GROUP_BY 2.0 Ein SQLUSMALLINT-Wert, der die Beziehung zwischen den Spalten in der GROUP BY-Klausel und den nicht aggregierten Spalten in der Auswahlliste angibt:
SQL_GB_COLLATE = Eine COLLATE-Klausel kann am Ende jeder Gruppierungsspalte angegeben werden. (ODBC 3.0)
SQL_GB_NOT_SUPPORTED = GROUP BY-Klauseln werden nicht unterstützt. (ODBC 2.0)
SQL_GB_GROUP_BY_EQUALS_SELECT = Die GROUP BY-Klausel muss alle nicht aggregierten Spalten in der Auswahlliste enthalten. Sie darf keine anderen Spalten enthalten. Beispiel: SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT. (ODBC 2.0)
SQL_GB_GROUP_BY_CONTAINS_SELECT = Die GROUP BY-Klausel muss alle nicht aggregierten Spalten in der Auswahlliste enthalten. Sie kann Spalten enthalten, die sich nicht in der Auswahlliste befinden. BEISPIEL: SELECT DEPT, MAX(GEHALT) AUS MITARBEITERGRUPPE NACH ABPT, ALTER. (ODBC 2.0)
SQL_GB_NO_RELATION = Die Spalten in der GROUP BY-Klausel und die Auswahlliste sind nicht verknüpft. Die Bedeutung nicht gruppierter, nicht aggregierter Spalten in der Auswahlliste ist datenquellenabhängig. BEISPIEL: SELECT DEPT, SALARY FROM EMPLOYEE GROUP BY DEPT, AGE. (ODBC 2.0)

Ein SQL-92 Entry Level-conformant-Treiber gibt immer die option SQL_GB_GROUP_BY_EQUALS_SELECT wie unterstützt zurück. Ein SQL-92 Full Level-conformant-Treiber gibt immer die option SQL_GB_COLLATE wie unterstützt zurück. Wenn keine der Optionen unterstützt wird, wird die GROUP BY-Klausel von der Datenquelle nicht unterstützt.
SQL_IDENTIFIER_CASE 1.0 Ein SQLUSMALLINT-Wert wie folgt:
SQL_IC_UPPER = Bezeichner in SQL werden nicht zwischen Groß- und Kleinschreibung unterschieden und in Großbuchstaben im Systemkatalog gespeichert.
SQL_IC_LOWER = Bezeichner in SQL werden nicht zwischen Groß-/Kleinschreibung unterschieden und in Kleinbuchstaben im Systemkatalog gespeichert.
SQL_IC_SENSITIVE = Bezeichner in SQL wird zwischen Groß- und Kleinschreibung unterschieden und in gemischten Groß-/Kleinschreibungen im Systemkatalog gespeichert.
SQL_IC_MIXED = Bezeichner in SQL werden nicht zwischen Groß- und Kleinschreibung unterschieden und im Systemkatalog in gemischter Groß-/Kleinschreibung gespeichert.

Da Bezeichner in SQL-92 niemals zwischen Groß- und Kleinschreibung unterschieden werden, gibt ein Treiber, der streng sql-92 (beliebige Ebene) entspricht, niemals die option SQL_IC_SENSITIVE wie unterstützt zurück.
SQL_IDENTIFIER_QUOTE_CHAR 1.0 Die Zeichenfolge, die als Anfangs- und Endtrennzeichen eines bezeichners mit Trennzeichen (durch Trennzeichen) in SQL-Anweisungen verwendet wird. (Bezeichner, die als Argumente an ODBC-Funktionen übergeben werden, müssen nicht zitiert werden.) Wenn die Datenquelle keine bezeichner mit Anmerkungen unterstützt, wird ein Leerzeichen zurückgegeben.

Diese Zeichenfolge kann auch zum Anstellen von Katalogfunktionsargumenten verwendet werden, wenn das Verbindungsattribute SQL_ATTR_METADATA_ID auf SQL_TRUE festgelegt ist.

Da das Anführungszeichen des Bezeichners in SQL-92 das doppelte Anführungszeichen () ist, gibt ein Treiber, der ausschließlich SQL-92 entspricht, immer das doppelte Anführungszeichen zurück.
SQL_INDEX_KEYWORDS 3.0 Eine SQLUINTEGER-Bitmaske, die Schlüsselwörter in der CREATE INDEX-Anweisung aufzählt, die vom Treiber unterstützt werden:
SQL_IK_NONE = Keine der Schlüsselwörter wird unterstützt.
SQL_IK_ASC = ASC-Schlüsselwort wird unterstützt.
SQL_IK_DESC = DESC-Schlüsselwort wird unterstützt.
SQL_IK_ALL = Alle Schlüsselwörter werden unterstützt.

Um festzustellen, ob die CREATE INDEX-Anweisung unterstützt wird, ruft eine Anwendung SQLGetInfo mit dem SQL_DLL_INDEX Informationstyp auf.
SQL_INFO_SCHEMA_VIEWS 3.0 Eine SQLUINTEGER-Bitmaske, die die Ansichten in der INFORMATION_SCHEMA aufzählt, die vom Treiber unterstützt werden. Die Ansichten in und der Inhalt von INFORMATION_SCHEMA sind in SQL-92 definiert.

Die SQL-92- oder FIPS-Konformitätsstufe, auf der dieses Feature unterstützt werden muss, wird in Klammern neben jeder Bitmaske angezeigt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Ansichten unterstützt werden:
SQL_ISV_ASSERTIONS = Identifiziert die Assertionen des Katalogs, die einem bestimmten Benutzer gehören. (Vollständige Ebene)
SQL_ISV_CHARACTER_SETS = Identifiziert die Zeichensätze des Katalogs, auf die von einem bestimmten Benutzer zugegriffen werden kann. (Mittlere Ebene)
SQL_ISV_CHECK_CONSTRAINTS = Identifiziert die CHECK-Einschränkungen, die einem bestimmten Benutzer gehören. (Mittlere Ebene)
SQL_ISV_COLLATIONS = Identifiziert die Zeichensortierungen für den Katalog, auf die von einem bestimmten Benutzer zugegriffen werden kann. (Vollständige Ebene)
SQL_ISV_COLUMN_DOMAIN_USAGE = Identifiziert Spalten für den Katalog, die von im Katalog definierten Domänen abhängen und einem bestimmten Benutzer gehören. (Mittlere Ebene)
SQL_ISV_COLUMN_PRIVILEGES = Identifiziert die Berechtigungen für Spalten persistenter Tabellen, die für einen bestimmten Benutzer verfügbar oder erteilt werden. (FIPS-Übergangsstufe)
SQL_ISV_COLUMNS = Identifiziert die Spalten persistenter Tabellen, auf die von einem bestimmten Benutzer zugegriffen werden kann. (FIPS-Übergangsstufe)
SQL_ISV_CONSTRAINT_COLUMN_USAGE = Ähnlich wie CONSTRAINT_TABLE_USAGE Ansicht werden Spalten für die verschiedenen Einschränkungen identifiziert, die einem bestimmten Benutzer gehören. (Mittlere Ebene)
SQL_ISV_CONSTRAINT_TABLE_USAGE = Identifiziert die Tabellen, die von Einschränkungen (referenzielle, eindeutige und Assertionen) verwendet werden, und gehört einem bestimmten Benutzer. (Mittlere Ebene)
SQL_ISV_DOMAIN_CONSTRAINTS = Identifiziert die Domäneneinschränkungen (der Domänen im Katalog), auf die von einem bestimmten Benutzer zugegriffen werden kann. (Mittlere Ebene)
SQL_ISV_DOMAINS = Identifiziert die in einem Katalog definierten Domänen, auf die der Benutzer zugreifen kann. (Mittlere Ebene)
SQL_ISV_KEY_COLUMN_USAGE = Identifiziert Spalten, die im Katalog definiert sind, die von einem bestimmten Benutzer als Schlüssel eingeschränkt sind. (Mittlere Ebene)
SQL_ISV_REFERENTIAL_CONSTRAINTS = Identifiziert die referenziellen Einschränkungen, die einem bestimmten Benutzer gehören. (Mittlere Ebene)
SQL_ISV_SCHEMATA = Identifiziert die Schemas, die einem bestimmten Benutzer gehören. (Mittlere Ebene)
SQL_ISV_SQL_LANGUAGES = Identifiziert die SQL-Konformitätsstufen, -Optionen und -Dialekte, die von der SQL-Implementierung unterstützt werden. (Mittlere Ebene)
SQL_ISV_TABLE_CONSTRAINTS = Identifiziert die Tabelleneinschränkungen, die einem bestimmten Benutzer gehören. (Mittlere Ebene)
SQL_ISV_TABLE_PRIVILEGES = Identifiziert die Berechtigungen für persistente Tabellen, die für einen bestimmten Benutzer verfügbar oder gewährt werden. (FIPS-Übergangsstufe)
SQL_ISV_TABLES = Identifiziert die in einem Katalog definierten persistenten Tabellen, auf die von einem bestimmten Benutzer zugegriffen werden kann. (FIPS-Übergangsstufe)
SQL_ISV_TRANSLATIONS = Identifiziert Zeichenübersetzungen für den Katalog, auf den von einem bestimmten Benutzer zugegriffen werden kann. (Vollständige Ebene)
SQL_ISV_USAGE_PRIVILEGES = Identifies the USAGE privileges on catalog objects that are available to or owned by a given user. (FIPS-Übergangsstufe)
SQL_ISV_VIEW_COLUMN_USAGE = Identifiziert die Spalten, in denen die Ansichten des Katalogs, die einem bestimmten Benutzer gehören, abhängig sind. (Mittlere Ebene)
SQL_ISV_VIEW_TABLE_USAGE = Identifiziert die Tabellen, in denen die Ansichten des Katalogs, die einem bestimmten Benutzer gehören, abhängig sind. (Mittlere Ebene)
SQL_ISV_VIEWS = Identifiziert die in diesem Katalog definierten angezeigten Tabellen, auf die von einem bestimmten Benutzer zugegriffen werden kann. (FIPS-Übergangsstufe)
SQL_INSERT_STATEMENT 3.0 Eine SQLUINTEGER-Bitmaske, die die Unterstützung für INSERT-Anweisungen angibt:
SQL_IS_INSERT_LITERALS
SQL_IS_INSERT_SEARCHED
SQL_IS_SELECT_INTO

Ein SQL-92 Entry Level-conformant-Treiber gibt immer alle diese Optionen wie unterstützt zurück.
SQL_INTEGRITY 1.0 Eine Zeichenfolge: "Y", wenn die Datenquelle die Integritätserweiterungsfazilität unterstützt; "N", wenn dies nicht der Fall ist.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_ODBC_SQL_OPT_IEF umbenannt.
SQL_KEYSET_CURSOR_ATTRIBUTES1 3.0 Eine SQLUINTEGER-Bitmaske, die die Attribute eines Keysetcursors beschreibt, die vom Treiber unterstützt werden. Diese Bitmaske enthält die erste Teilmenge der Attribute; die zweite Teilmenge finden Sie unter SQL_KEYSET_CURSOR_ATTRIBUTES2.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Attribute unterstützt werden:
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Beschreibungen dieser Bitmasken finden Sie unter SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (und ersetzen Sie "keysetgesteuerten Cursor" für "dynamischen Cursor" in den Beschreibungen).

Ein SQL-92-Treiber mit Konformer Ebene gibt in der Regel die SQL_CA1_NEXT, SQL_CA1_ABSOLUTE und SQL_CA1_RELATIVE Optionen wie unterstützt zurück, da der Treiber bildlauffähige Cursor über die eingebettete SQL FETCH-Anweisung unterstützt. Da dies nicht direkt die zugrunde liegende SQL-Unterstützung bestimmt, werden bildlauffähige Cursor möglicherweise nicht unterstützt, auch für einen SQL-92-Treiber mit mittlerer Ebene.
SQL_KEYSET_CURSOR_ATTRIBUTES2 3.0 Eine SQLUINTEGER-Bitmaske, die die Attribute eines Keysetcursors beschreibt, die vom Treiber unterstützt werden. Diese Bitmaske enthält die zweite Teilmenge von Attributen; die erste Teilmenge finden Sie unter SQL_KEYSET_CURSOR_ATTRIBUTES1.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Attribute unterstützt werden:
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Beschreibungen dieser Bitmasken finden Sie unter SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (und ersetzen Sie "keysetgesteuerten Cursor" für "dynamischen Cursor" in den Beschreibungen).
SQL_KEYWORDS 2.0 Eine Zeichenfolge, die eine durch Trennzeichen getrennte Liste aller datenquellenspezifischen Schlüsselwörter enthält. Diese Liste enthält keine Schlüsselwörter, die für ODBC oder Schlüsselwörter spezifisch sind, die sowohl von der Datenquelle als auch von ODBC verwendet werden. Diese Liste stellt alle reservierten Schlüsselwörter dar; interoperable Anwendungen sollten diese Wörter nicht in Objektnamen verwenden.

Eine Liste der ODBC-Schlüsselwörter finden Sie unter "Reservierte Schlüsselwörter " in Anhang C: SQL-Grammatik. Der #define Wert SQL_ODBC_KEYWORDS enthält eine durch Trennzeichen getrennte Liste von ODBC-Schlüsselwörtern.
SQL_LIKE_ESCAPE_CLAUSE 2.0 Eine Zeichenfolge: "Y", wenn die Datenquelle ein Escapezeichen für das Prozentzeichen (%) und unterstrich (_) in einem LIKE-Prädikat unterstützt und der Treiber die ODBC-Syntax zum Definieren eines LIKE-Prädikat-Escapezeichens unterstützt; Andernfalls "N".
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 3.0 Ein SQLUINTEGER-Wert, der die maximale Anzahl aktiver gleichzeitiger Anweisungen im asynchronen Modus angibt, die der Treiber für eine bestimmte Verbindung unterstützen kann. Wenn kein bestimmter Grenzwert vorhanden ist oder der Grenzwert unbekannt ist, ist dieser Wert null.
SQL_MAX_BINARY_LITERAL_LEN 2.0 Ein SQLUINTEGER-Wert, der die maximale Länge (Anzahl hexadezimaler Zeichen, mit Ausnahme des Literalpräfixes und suffix, das von SQLGetTypeInfo zurückgegeben wird) eines binären Literals in einer SQL-Anweisung angibt. Beispielsweise weist das binäre Literal 0xFFAA eine Länge von 4 auf. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.
SQL_MAX_CATALOG_NAME_LEN 1.0 Ein SQLUSMALLINT-Wert, der die maximale Länge eines Katalognamens in der Datenquelle angibt. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Full Level-konformer Treiber gibt mindestens 128 zurück.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_MAX_QUALIFIER_NAME_LEN umbenannt.
SQL_MAX_CHAR_LITERAL_LEN 2.0 Ein SQLUINTEGER-Wert, der die maximale Länge (Anzahl von Zeichen, mit Ausnahme des Literalpräfixes und suffix, das von SQLGetTypeInfo zurückgegeben wird) eines Zeichenliterals in einer SQL-Anweisung angibt. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.
SQL_MAX_COLUMN_NAME_LEN 1.0 Ein SQLUSMALLINT-Wert, der die maximale Länge eines Spaltennamens in der Datenquelle angibt. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 18 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 128 zurück.
SQL_MAX_COLUMNS_IN_GROUP_BY 2.0 Ein SQLUSMALLINT-Wert, der die maximale Anzahl von Spalten angibt, die in einer GROUP BY-Klausel zulässig sind. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 6 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 15 zurück.
SQL_MAX_COLUMNS_IN_INDEX 2.0 Ein SQLUSMALLINT-Wert, der die maximale Anzahl von Spalten angibt, die in einem Index zulässig sind. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.
SQL_MAX_COLUMNS_IN_ORDER_BY 2.0 Ein SQLUSMALLINT-Wert, der die maximale Anzahl von Spalten angibt, die in einer ORDER BY-Klausel zulässig sind. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 6 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 15 zurück.
SQL_MAX_COLUMNS_IN_SELECT 2.0 Ein SQLUSMALLINT-Wert, der die maximale Anzahl von Spalten angibt, die in einer Auswahlliste zulässig sind. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 100 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 250 zurück.
SQL_MAX_COLUMNS_IN_TABLE 2.0 Ein SQLUSMALLINT-Wert, der die maximale Anzahl von Spalten angibt, die in einer Tabelle zulässig sind. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 100 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 250 zurück.
SQL_MAX_CONCURRENT_ACTIVITIES 1.0 Ein SQLUSMALLINT-Wert, der die maximale Anzahl aktiver Anweisungen angibt, die der Treiber für eine Verbindung unterstützen kann. Eine Anweisung wird als aktiv definiert, wenn die Ergebnisse ausstehen, mit dem Begriff "Ergebnisse" bedeutet, dass Zeilen aus einem SELECT-Vorgang oder Zeilen, die von einem INSERT-, UPDATE- oder DELETE-Vorgang (z. B. einer Zeilenanzahl) betroffen sind, oder wenn sie sich in einem NEED_DATA Zustand befindet. Dieser Wert kann eine Einschränkung darstellen, die entweder vom Treiber oder der Datenquelle auferlegt wird. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_ACTIVE_STATEMENTS umbenannt.
SQL_MAX_CURSOR_NAME_LEN 1.0 Ein SQLUSMALLINT-Wert, der die maximale Länge eines Cursornamens in der Datenquelle angibt. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 18 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 128 zurück.
SQL_MAX_DRIVER_CONNECTIONS 1.0 Ein SQLUSMALLINT-Wert, der die maximale Anzahl aktiver Verbindungen angibt, die der Treiber für eine Umgebung unterstützen kann. Dieser Wert kann eine Einschränkung darstellen, die entweder vom Treiber oder der Datenquelle auferlegt wird. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_ACTIVE_CONNECTIONS umbenannt.
SQL_MAX_IDENTIFIER_LEN 3.0 Eine SQLUSMALLINT, die die maximale Größe in Zeichen angibt, die von der Datenquelle für benutzerdefinierte Namen unterstützt werden.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 18 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 128 zurück.
SQL_MAX_INDEX_SIZE 2.0 Ein SQLUINTEGER-Wert, der die maximale Anzahl von Bytes angibt, die in den kombinierten Feldern eines Indexes zulässig sind. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.
SQL_MAX_PROCEDURE_NAME_LEN 1.0 Ein SQLUSMALLINT-Wert, der die maximale Länge eines Prozedurnamens in der Datenquelle angibt. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.
SQL_MAX_ROW_SIZE 2.0 Ein SQLUINTEGER-Wert, der die maximale Länge einer einzelnen Zeile in einer Tabelle angibt. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 2.000 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 8.000 zurück.
SQL_MAX_ROW_SIZE_INCLUDES_LONG 3.0 Eine Zeichenfolge: "Y", wenn die für den informationstyp SQL_MAX_ROW_SIZE zurückgegebene maximale Zeilengröße die Länge aller SQL_LONGVARCHAR und SQL_LONGVARBINARY Spalten in der Zeile enthält; Andernfalls "N".
SQL_MAX_SCHEMA_NAME_LEN 1.0 Ein SQLUSMALLINT-Wert, der die maximale Länge eines Schemanamens in der Datenquelle angibt. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 18 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 128 zurück.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_MAX_OWNER_NAME_LEN umbenannt.
SQL_MAX_STATEMENT_LEN 2.0 Ein SQLUINTEGER-Wert, der die maximale Länge (Anzahl von Zeichen, einschließlich Leerzeichen) einer SQL-Anweisung angibt. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.
SQL_MAX_TABLE_NAME_LEN 1.0 Ein SQLUSMALLINT-Wert, der die maximale Länge eines Tabellennamens in der Datenquelle angibt. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 18 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 128 zurück.
SQL_MAX_TABLES_IN_SELECT 2.0 Ein SQLUSMALLINT-Wert, der die maximale Anzahl von Tabellen angibt, die in der FROM-Klausel einer SELECT-Anweisung zulässig sind. Wenn kein angegebenes Limit vorhanden ist oder der Grenzwert unbekannt ist, wird dieser Wert auf Null festgelegt.

Ein FIPS Entry Level-konformer Treiber gibt mindestens 15 zurück. Ein FIPS Intermediate Level-konformer Treiber gibt mindestens 50 zurück.
SQL_MAX_USER_NAME_LEN 2.0 Ein SQLUSMALLINT-Wert, der die maximale Länge eines Benutzernamens in der Datenquelle angibt. Wenn keine maximale Länge vorhanden ist oder die Länge unbekannt ist, wird dieser Wert auf Null festgelegt.
SQL_MULT_RESULT_SETS 1.0 Eine Zeichenfolge: "Y", wenn die Datenquelle mehrere Resultsets unterstützt, "N", wenn dies nicht der Fall ist.

Weitere Informationen zu mehreren Resultsets finden Sie unter "Mehrere Ergebnisse".
SQL_MULTIPLE_ACTIVE_TXN 1.0 Eine Zeichenfolge: "Y", wenn der Treiber mehrere aktive Transaktionen gleichzeitig unterstützt, "N", wenn immer nur eine Transaktion aktiv sein kann.

Die für diesen Informationstyp zurückgegebenen Informationen gelten nicht für verteilte Transaktionen.
SQL_NEED_LONG_DATA_LEN 2.0 Eine Zeichenfolge: "Y", wenn die Datenquelle die Länge eines langen Datenwerts benötigt (der Datentyp ist SQL_LONGVARCHAR, SQL_LONGVARBINARY oder ein langer datenquellenspezifischer Datentyp), bevor dieser Wert an die Datenquelle gesendet wird, "N", wenn dies nicht der Fall ist. Weitere Informationen finden Sie unter SQLBindParameter-Funktion und SQLSetPos-Funktion.
SQL_NON_NULLABLE_COLUMNS 1.0 Ein SQLUSMALLINT-Wert, der angibt, ob die Datenquelle NOT NULL in Spalten unterstützt:
SQL_NNC_NULL = Alle Spalten müssen nullwertebar sein.
SQL_NNC_NON_NULL = Spalten können nicht null sein. (Die Datenquelle unterstützt die NOT NULL-Spalteneinschränkung in CREATE TABLE-Anweisungen .)

Ein SQL-92 Entry Level-conformant-Treiber gibt SQL_NNC_NON_NULL zurück.
SQL_NULL_COLLATION 2.0 Ein SQLUSMALLINT-Wert, der angibt, wo NULLs in einem Resultset sortiert werden:
SQL_NC_END = NULLs werden unabhängig von den SCHLÜSSELWÖRTERn ASC oder DESC am Ende des Resultsets sortiert.
SQL_NC_HIGH = NULLs werden je nach ASC- oder DESC-Schlüsselwörtern am hohen Ende des Resultsets sortiert.
SQL_NC_LOW = NULLs werden je nach ASC- oder DESC-Schlüsselwörtern am unteren Ende des Resultsets sortiert.
SQL_NC_START = NULLs werden am Anfang des Resultsets sortiert, unabhängig von den Schlüsselwörtern ASC oder DESC.
SQL_NUMERIC_FUNCTIONS 1.0 Hinweis: Der Informationstyp wurde in ODBC 1.0 eingeführt; Jede Bitmaske wird mit der Version beschriftet, in der sie eingeführt wurde.

Eine SQLUINTEGER-Bitmaske, die die skalaren numerischen Funktionen aufzählt, die vom Treiber und der zugeordneten Datenquelle unterstützt werden.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche numerischen Funktionen unterstützt werden:
SQL_FN_NUM_ABS (ODBC 1.0)
SQL_FN_NUM_ACOS (ODBC 1.0)
SQL_FN_NUM_ASIN (ODBC 1.0)
SQL_FN_NUM_ATAN (ODBC 1.0)
SQL_FN_NUM_ATAN2 (ODBC 1.0)
SQL_FN_NUM_CEILING (ODBC 1.0)
SQL_FN_NUM_COS (ODBC 1.0)
SQL_FN_NUM_COT (ODBC 1.0)
SQL_FN_NUM_DEGREES (ODBC 2.0)
SQL_FN_NUM_EXP (ODBC 1.0)
SQL_FN_NUM_FLOOR (ODBC 1.0)
SQL_FN_NUM_LOG (ODBC 1.0)
SQL_FN_NUM_LOG10 (ODBC 2.0)
SQL_FN_NUM_MOD (ODBC 1.0)
SQL_FN_NUM_PI (ODBC 1.0)
SQL_FN_NUM_POWER (ODBC 2.0)
SQL_FN_NUM_RADIANS (ODBC 2.0)
SQL_FN_NUM_RAND (ODBC 1.0)
SQL_FN_NUM_ROUND (ODBC 2.0)
SQL_FN_NUM_SIGN (ODBC 1.0)
SQL_FN_NUM_SIN (ODBC 1.0)
SQL_FN_NUM_SQRT (ODBC 1.0)
SQL_FN_NUM_TAN (ODBC 1.0)
SQL_FN_NUM_TRUNCATE (ODBC 2.0)
SQL_ODBC_INTERFACE_CONFORMANCE 3.0 Ein SQLUINTEGER-Wert, der die Ebene der ODBC 3*.x*-Schnittstelle angibt, die der Treiber erfüllt.

SQL_OIC_CORE: Die Mindeststufe, der alle ODBC-Treiber entsprechen sollen. Diese Ebene enthält grundlegende Schnittstellenelemente wie Verbindungsfunktionen, Funktionen zum Vorbereiten und Ausführen einer SQL-Anweisung, grundlegende Resultset-Metadatenfunktionen, grundlegende Katalogfunktionen usw.
SQL_OIC_LEVEL1: Eine Ebene, die die Kernfunktionen der Compliance-Ebene umfasst, sowie Bildlaufcursor, Lesezeichen, positionierte Updates und Löschungen usw.
SQL_OIC_LEVEL2: Eine Ebene einschließlich der Funktionalität auf Ebene 1 der Complianceebene sowie erweiterte Features wie sensible Cursor; Aktualisieren, Löschen und Aktualisieren durch Lesezeichen; Unterstützung gespeicherter Prozeduren; Katalogfunktionen für Primär- und Fremdschlüssel; Unterstützung für mehrere Kataloge; Und so weiter.

Weitere Informationen finden Sie unter Schnittstellenkonformitätsebenen.
SQL_ODBC_VER 1.0 Eine Zeichenfolge mit der Version von ODBC, der der Treiber-Manager entspricht. Die Version ist das Format ##.#.0000, wobei die ersten beiden Ziffern die Hauptversion und die nächsten beiden Ziffern die Nebenversion sind. Dies wird nur im Treiber-Manager implementiert.
SQL_OJ_CAPABILITIES 2,01 Eine SQLUINTEGER-Bitmaske, die die Typen von äußeren Verknüpfungen aufzählt, die vom Treiber und der Datenquelle unterstützt werden. Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Typen unterstützt werden:
SQL_OJ_LEFT = Linke äußere Verknüpfungen werden unterstützt.
SQL_OJ_RIGHT = Rechte äußere Verknüpfungen werden unterstützt.
SQL_OJ_FULL = Vollständige äußere Verknüpfungen werden unterstützt.
SQL_OJ_NESTED = Geschachtelte äußere Verknüpfungen werden unterstützt.
SQL_OJ_NOT_ORDERED = Die Spaltennamen in der ON-Klausel der äußeren Verknüpfung müssen nicht in der gleichen Reihenfolge sein wie die jeweiligen Tabellennamen in der OUTER JOIN-Klausel .
SQL_OJ_INNER = Die innere Tabelle (die rechte Tabelle in einer linken äußeren Verknüpfung oder die linke Tabelle in einer rechten äußeren Verknüpfung) kann auch in einer inneren Verknüpfung verwendet werden. Dies gilt nicht für vollständige äußere Verknüpfungen, die keine innere Tabelle aufweisen.
SQL_OJ_ALL_COMPARISON_OPS = Der Vergleichsoperator in der ON-Klausel kann jeder der ODBC-Vergleichsoperatoren sein. Wenn dieses Bit nicht festgelegt ist, kann nur der Vergleichsoperator gleich (=) in äußeren Verknüpfungen verwendet werden.

Wenn keine dieser Optionen als unterstützt zurückgegeben wird, wird keine äußere Verknüpfungsklausel unterstützt.

Informationen zur Unterstützung relationaler Verknüpfungsoperatoren in einer SELECT-Anweisung, wie in SQL-92 definiert, finden Sie unter SQL_SQL92_RELATIONAL_JOIN_OPERATORS.
SQL_ORDER_BY_COLUMNS_IN_SELECT 2.0 Eine Zeichenfolge: "Y", wenn sich die Spalten in der ORDER BY-Klausel in der Auswahlliste befinden müssen; andernfalls "N".
SQL_PARAM_ARRAY_ROW_COUNTS 3.0 Eine SQLUINTEGER,die die Eigenschaften des Treibers in Bezug auf die Verfügbarkeit der Zeilenanzahl in einer parametrisierten Ausführung aufzählt. Weist die folgenden Werte auf:
SQL_PARC_BATCH = Einzelne Zeilenanzahlen stehen für jede Reihe von Parametern zur Verfügung. Dies entspricht konzeptionell dem Treiber, der eine Reihe von SQL-Anweisungen generiert, eine für jeden Parameter, der im Array festgelegt ist. Erweiterte Fehlerinformationen können mithilfe des Felds SQL_PARAM_STATUS_PTR Deskriptor abgerufen werden.
SQL_PARC_NO_BATCH = Es ist nur eine Zeilenanzahl verfügbar, bei der es sich um die kumulierte Zeilenanzahl handelt, die sich aus der Ausführung der Anweisung für das gesamte Array von Parametern ergibt. Dies entspricht konzeptionell der Behandlung der Anweisung zusammen mit dem vollständigen Parameterarray als eine Atomeinheit. Fehler werden genauso behandelt, als ob eine Anweisung ausgeführt wurde.
SQL_PARAM_ARRAY_SELECTS 3.0 Eine SQLUINTEGER,die die Eigenschaften des Treibers in Bezug auf die Verfügbarkeit von Resultsets in einer parametrisierten Ausführung aufzählt. Weist die folgenden Werte auf:
SQL_PAS_BATCH = Pro Parametersatz ist ein Resultset verfügbar. Dies entspricht konzeptionell dem Treiber, der eine Reihe von SQL-Anweisungen generiert, eine für jeden Parameter, der im Array festgelegt ist.
SQL_PAS_NO_BATCH = Es ist nur ein Resultset verfügbar, das das kumulative Resultset darstellt, das sich aus der Ausführung der Anweisung für das vollständige Array von Parametern ergibt. Dies entspricht konzeptionell der Behandlung der Anweisung zusammen mit dem vollständigen Parameterarray als eine Atomeinheit.
SQL_PAS_NO_SELECT = Ein Treiber lässt nicht zu, dass eine Ergebnissatz-Generierungsanweisung mit einem Array von Parametern ausgeführt wird.
SQL_POS_OPERATIONS 2.0 Eine SQLINTEGER-Bitmaske, die die Unterstützungsvorgänge in SQLSetPos aufzählt.

Die folgenden Bitmasken werden zusammen mit dem Flag verwendet, um zu bestimmen, welche Optionen unterstützt werden.
SQL_POS_POSITION (ODBC 2.0)
SQL_POS_REFRESH (ODBC 2.0)
SQL_POS_UPDATE (ODBC 2.0)
SQL_POS_DELETE (ODBC 2.0)
SQL_POS_ADD (ODBC 2.0)
SQL_PROCEDURE_TERM 1.0 Eine Zeichenfolge mit dem Namen des Datenquellenanbieters für eine Prozedur; Beispiel: "Datenbankprozedur", "gespeicherte Prozedur", "Prozedur", "Paket" oder "gespeicherte Abfrage".
SQL_PROCEDURES 1.0 Eine Zeichenfolge: "Y", wenn die Datenquelle Prozeduren unterstützt und der Treiber die Syntax des ODBC-Prozeduraufrufs unterstützt; Andernfalls "N".
SQL_QUOTED_IDENTIFIER_CASE 2.0 Ein SQLUSMALLINT-Wert wie folgt:
SQL_IC_UPPER = Bezeichner mit Anführungszeichen in SQL werden nicht zwischen Groß- und Kleinschreibung unterschieden und im Systemkatalog in Großbuchstaben gespeichert.
SQL_IC_LOWER = Bezeichner in Anführungszeichen in SQL werden nicht zwischen Groß- und Kleinschreibung unterschieden und im Systemkatalog in Kleinbuchstaben gespeichert.
SQL_IC_SENSITIVE = Bezeichner mit Anführungszeichen in SQL werden zwischen Groß- und Kleinschreibung unterschieden und im Systemkatalog in gemischter Groß-/Kleinschreibung gespeichert. (In einer SQL-92-kompatiblen Datenbank werden in Anmerkungen immer die Groß-/Kleinschreibung beachtet.)
SQL_IC_MIXED = Bezeichner mit Anführungszeichen in SQL werden nicht zwischen Groß- und Kleinschreibung unterschieden und im Systemkatalog in gemischter Groß-/Kleinschreibung gespeichert.

Ein SQL-92-Konformer Treiber der Einstiegsebene gibt immer SQL_IC_SENSITIVE zurück.
SQL_ROW_UPDATES 1.0 Eine Zeichenfolge: "Y", wenn ein keysetgesteuerter oder gemischter Cursor Zeilenversionen oder -werte für alle abgerufenen Zeilen verwaltet und daher alle Aktualisierungen erkennen kann, die seit dem letzten Abruf der Zeile an einer Zeile von jedem Benutzer vorgenommen wurden. (Dies gilt nur für Aktualisierungen, nicht für Löschungen oder Einfügungen.) Der Treiber kann das SQL_ROW_UPDATED Flag an das Zeilenstatusarray zurückgeben, wenn SQLFetchScroll aufgerufen wird. Andernfalls "N".
SQL_SCHEMA_TERM 1.0 Eine Zeichenfolge mit dem Namen des Datenquellenanbieters für ein Schema; z. B. "Besitzer", "Autorisierungs-ID" oder "Schema".

Die Zeichenfolge kann in Groß-, Klein- oder Kleinschreibung zurückgegeben werden.

Ein SQL-92-Treiber für die Einstiegsebene gibt immer "Schema" zurück.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_OWNER_TERM umbenannt.
SQL_SCHEMA_USAGE 2.0 Eine SQLUINTEGER-Bitmaske, die die Anweisungen aufzählt, in denen Schemas verwendet werden können:
SQL_SU_DML_STATEMENTS = Schemas werden in allen Datenbearbeitungssprachenanweisungen unterstützt: SELECT, INSERT, UPDATE, DELETE und falls unterstützt, SELECT FOR UPDATE und positionierte Update- und Löschanweisungen.
SQL_SU_PROCEDURE_INVOCATION = Schemas werden in der ODBC-Prozeduraufruf-Anweisung unterstützt.
SQL_SU_TABLE_DEFINITION = Schemas werden in allen Tabellendefinitionsanweisungen unterstützt: CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE und DROP VIEW.
SQL_SU_INDEX_DEFINITION = Schemas werden in allen Indexdefinitionsanweisungen unterstützt: CREATE INDEX und DROP INDEX.
SQL_SU_PRIVILEGE_DEFINITION = Schemas werden in allen Berechtigungsdefinitionsanweisungen unterstützt: GRANT und REVOKE.

Ein SQL-92-Treiber für die Einstiegsebene gibt immer die optionen SQL_SU_DML_STATEMENTS, SQL_SU_TABLE_DEFINITION und SQL_SU_PRIVILEGE_DEFINITION zurück, wie unterstützt.

Dieser InfoType wurde für ODBC 3.0 aus dem ODBC 2.0 InfoType-SQL_OWNER_USAGE umbenannt.
SQL_SCROLL_OPTIONS 1.0 Hinweis: Der Informationstyp wurde in ODBC 1.0 eingeführt; Jede Bitmaske wird mit der Version beschriftet, in der sie eingeführt wurde.

Eine SQLUINTEGER-Bitmaske zum Aufzählen der Bildlaufoptionen, die für Bildlaufcursor unterstützt werden.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Optionen unterstützt werden:
SQL_SO_FORWARD_ONLY = Der Cursor scrollt nur vorwärts. (ODBC 1.0)
SQL_SO_STATIC = Die Daten im Resultset sind statisch. (ODBC 2.0)
SQL_SO_KEYSET_DRIVEN = Der Treiber speichert und verwendet die Schlüssel für jede Zeile im Resultset. (ODBC 1.0)
SQL_SO_DYNAMIC = Der Treiber behält die Schlüssel für jede Zeile im Rowset bei (die Keysetgröße ist identisch mit der Zeilensatzgröße). (ODBC 1.0)
SQL_SO_MIXED = Der Treiber behält die Tasten für jede Zeile im Keyset bei, und die Keysetgröße ist größer als die Rowsetgröße. Der Cursor ist keysetgesteuert innerhalb des Keysets und dynamisch außerhalb des Keysets. (ODBC 1.0)

Informationen zu bildlauffähigen Cursorn finden Sie unter Scrollbare Cursor.
SQL_SEARCH_PATTERN_ESCAPE 1.0 Eine Zeichenfolge, die angibt, was der Treiber als Escapezeichen unterstützt, das die Verwendung des Musters mit metacharacters Unterstrich (_) und Prozentzeichen (%) als gültige Zeichen in Suchmustern ermöglicht. Dieses Escapezeichen gilt nur für diese Katalogfunktionsargumente, die Suchzeichenfolgen unterstützen. Wenn diese Zeichenfolge leer ist, unterstützt der Treiber kein Suchmuster-Escapezeichen.

Da dieser Informationstyp keine allgemeine Unterstützung des Escapezeichens im LIKE-Prädikat angibt, enthält SQL-92 keine Anforderungen für diese Zeichenfolge.

Dieser InfoType ist auf Katalogfunktionen beschränkt. Eine Beschreibung der Verwendung des Escapezeichens in Suchmusterzeichenfolgen finden Sie unter Musterwertargumente.
SQL_SERVER_NAME 1.0 Eine Zeichenfolge mit dem tatsächlichen datenquellenspezifischen Servernamen; nützlich, wenn ein Datenquellenname während SQLConnect, SQLDriverConnect und SQLBrowseConnect verwendet wird.
SQL_SPECIAL_CHARACTERS 2.0 Eine Zeichenzeichenfolge, die alle Sonderzeichen (d. h. alle Zeichen mit Ausnahme von Z, A bis Z, 0 bis 9 und Unterstrich) enthält, die in einem Bezeichnernamen verwendet werden können, z. B. tabellenname, Spaltenname oder Indexname, in der Datenquelle. Beispiel: "#$^". Wenn ein Bezeichner mindestens eins dieser Zeichen enthält, muss der Bezeichner ein durch Trennzeichen getrennter Bezeichner sein.
SQL_SQL_CONFORMANCE 3.0 Ein SQLUINTEGER-Wert, der die vom Treiber unterstützte SQL-92-Ebene angibt:
SQL_SC_SQL92_ENTRY = SQL-92-kompatibel auf Der Einstiegsebene.
SQL_SC_FIPS127_2_TRANSITIONAL = FIPS 127-2-Übergangsstufe konform.
SQL_SC_SQL92_FULL = SQL-92-Kompatibel auf vollständiger Ebene.
SQL_SC_ SQL92_INTERMEDIATE = SQL-92-kompatibel auf Mittlerer Ebene.
SQL_SQL92_DATETIME_FUNCTIONS 3.0 Eine SQLUINTEGER-Bitmaske, die die datumszeitskaeren Funktionen aufzählt, die vom Treiber und der zugehörigen Datenquelle unterstützt werden, wie in SQL-92 definiert.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Datetime-Funktionen unterstützt werden:
SQL_SDF_CURRENT_DATE
SQL_SDF_CURRENT_TIME
SQL_SDF_CURRENT_TIMESTAMP
SQL_SQL92_FOREIGN_KEY_DELETE_RULE 3.0 Eine SQLUINTEGER-Bitmaske, die die für einen Fremdschlüssel in einer DELETE-Anweisung unterstützten Regeln aufzählt, wie in SQL-92 definiert.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln von der Datenquelle unterstützt werden:
SQL_SFKD_CASCADE
SQL_SFKD_NO_ACTION
SQL_SFKD_SET_DEFAULT
SQL_SFKD_SET_NULL

Ein FIPS-konformer Treiber für Die Übergangsstufe gibt immer alle diese Optionen wie unterstützt zurück.
SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 3.0 Eine SQLUINTEGER-Bitmaske, die die für einen Fremdschlüssel in einer UPDATE-Anweisung unterstützten Regeln aufzählt, wie in SQL-92 definiert.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln von der Datenquelle unterstützt werden:
SQL_SFKU_CASCADE
SQL_SFKU_NO_ACTION
SQL_SFKU_SET_DEFAULT
SQL_SFKU_SET_NULL

Ein SQL-92 Full Level-conformant-Treiber gibt immer alle diese Optionen wie unterstützt zurück.
SQL_SQL92_GRANT 3.0 Eine SQLUINTEGER-Bitmaske, die die in der GRANT-Anweisung unterstützten Klauseln aufzählt, wie in SQL-92 definiert.

Die SQL-92- oder FIPS-Konformitätsstufe, auf der dieses Feature unterstützt werden muss, wird in Klammern neben jeder Bitmaske angezeigt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln von der Datenquelle unterstützt werden:
SQL_SG_DELETE_TABLE (Einstiegsebene)
SQL_SG_INSERT_COLUMN (Zwischenstufe)
SQL_SG_INSERT_TABLE (Einstiegsebene)
SQL_SG_REFERENCES_TABLE (Einstiegsebene)
SQL_SG_REFERENCES_COLUMN (Einstiegsebene)
SQL_SG_SELECT_TABLE (Einstiegsebene)
SQL_SG_UPDATE_COLUMN (Einstiegsebene)
SQL_SG_UPDATE_TABLE (Einstiegsebene)
SQL_SG_USAGE_ON_DOMAIN (FIPS-Übergangsstufe)
SQL_SG_USAGE_ON_CHARACTER_SET (FIPS-Übergangsstufe)
SQL_SG_USAGE_ON_COLLATION (FIPS-Übergangsstufe)
SQL_SG_USAGE_ON_TRANSLATION (FIPS-Übergangsstufe)
SQL_SG_WITH_GRANT_OPTION (Einstiegsebene)
SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 3.0 Eine SQLUINTEGER-Bitmaske, die die numerischen Wertskaerfunktionen aufzählt, die vom Treiber und der zugehörigen Datenquelle unterstützt werden, wie in SQL-92 definiert.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche numerischen Funktionen unterstützt werden:
SQL_SNVF_BIT_LENGTH
SQL_SNVF_CHAR_LENGTH
SQL_SNVF_CHARACTER_LENGTH
SQL_SNVF_EXTRACT
SQL_SNVF_OCTET_LENGTH
SQL_SNVF_POSITION
SQL_SQL92_PREDICATES 3.0 Eine SQLUINTEGER-Bitmaske, die die in einer SELECT-Anweisung unterstützten Prädikate aufzählt, wie in SQL-92 definiert.

Die SQL-92- oder FIPS-Konformitätsstufe, auf der dieses Feature unterstützt werden muss, wird in Klammern neben jeder Bitmaske angezeigt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Optionen von der Datenquelle unterstützt werden:
SQL_SP_BETWEEN (Einstiegsebene)
SQL_SP_COMPARISON (Einstiegsebene)
SQL_SP_EXISTS (Einstiegsebene)
SQL_SP_IN (Einstiegsebene)
SQL_SP_ISNOTNULL (Einstiegsebene)
SQL_SP_ISNULL (Einstiegsebene)
SQL_SP_LIKE (Einstiegsstufe)
SQL_SP_MATCH_FULL (Vollständige Ebene)
SQL_SP_MATCH_PARTIAL(Vollständige Ebene)
SQL_SP_MATCH_UNIQUE_FULL (Vollständige Ebene)
SQL_SP_MATCH_UNIQUE_PARTIAL (Vollständige Ebene)
SQL_SP_OVERLAPS (FIPS-Übergangsstufe)
SQL_SP_QUANTIFIED_COMPARISON (Einstiegsebene)
SQL_SP_UNIQUE (Einstiegsebene)
SQL_SQL92_RELATIONAL_JOIN_OPERATORS 3.0 Eine SQLUINTEGER-Bitmaske zum Aufzählen der relationalen Verknüpfungsoperatoren, die in einer SELECT-Anweisung unterstützt werden, wie in SQL-92 definiert.

Die SQL-92- oder FIPS-Konformitätsstufe, auf der dieses Feature unterstützt werden muss, wird in Klammern neben jeder Bitmaske angezeigt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Optionen von der Datenquelle unterstützt werden:
SQL_SRJO_CORRESPONDING_CLAUSE (Zwischenstufe)
SQL_SRJO_CROSS_JOIN (Vollständige Ebene)
SQL_SRJO_EXCEPT_JOIN (Zwischenstufe)
SQL_SRJO_FULL_OUTER_JOIN (Zwischenstufe)
SQL_SRJO_INNER_JOIN (FIPS-Übergangsstufe)
SQL_SRJO_INTERSECT_JOIN (Zwischenstufe)
SQL_SRJO_LEFT_OUTER_JOIN (FIPS-Übergangsstufe)
SQL_SRJO_NATURAL_JOIN (FIPS-Übergangsstufe)
SQL_SRJO_RIGHT_OUTER_JOIN (FIPS-Übergangsstufe)
SQL_SRJO_UNION_JOIN (Vollständige Ebene)

SQL_SRJO_INNER_JOIN gibt die Unterstützung für die INNER JOIN-Syntax an, nicht für die inneren Verknüpfungsfunktionen. Die Unterstützung für die INNER JOIN-Syntax ist FIPS TRANSITIONAL, während die Unterstützung der inneren Verknüpfungsfunktion ENTRY ist.
SQL_SQL92_REVOKE 3.0 Eine SQLUINTEGER-Bitmaske, die die in der REVOKE-Anweisung unterstützten Klauseln aufzählt, wie in SQL-92 definiert, unterstützt von der Datenquelle.

Die SQL-92- oder FIPS-Konformitätsstufe, auf der dieses Feature unterstützt werden muss, wird in Klammern neben jeder Bitmaske angezeigt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Klauseln von der Datenquelle unterstützt werden:
SQL_SR_CASCADE (FIPS-Übergangsstufe)
SQL_SR_DELETE_TABLE (Einstiegsebene)
SQL_SR_GRANT_OPTION_FOR (Zwischenstufe)
SQL_SR_INSERT_COLUMN (Zwischenstufe)
SQL_SR_INSERT_TABLE (Einstiegsebene)
SQL_SR_REFERENCES_COLUMN (Einstiegsebene)
SQL_SR_REFERENCES_TABLE (Einstiegsebene)
SQL_SR_RESTRICT (FIPS-Übergangsstufe)
SQL_SR_SELECT_TABLE (Einstiegsebene)
SQL_SR_UPDATE_COLUMN (Einstiegsebene)
SQL_SR_UPDATE_TABLE (Einstiegsebene)
SQL_SR_USAGE_ON_DOMAIN (FIPS-Übergangsstufe)
SQL_SR_USAGE_ON_CHARACTER_SET (FIPS-Übergangsstufe)
SQL_SR_USAGE_ON_COLLATION (FIPS-Übergangsstufe)
SQL_SR_USAGE_ON_TRANSLATION (FIPS-Übergangsstufe)
SQL_SQL92_ROW_VALUE_CONSTRUCTOR 3.0 Eine SQLUINTEGER-Bitmaske zum Aufzählen der Zeilenwertkonstruktorausdrücke, die in einer SELECT-Anweisung unterstützt werden, wie in SQL-92 definiert. Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Optionen von der Datenquelle unterstützt werden:
SQL_SRVC_VALUE_EXPRESSION
SQL_SRVC_NULL
SQL_SRVC_DEFAULT
SQL_SRVC_ROW_SUBQUERY
SQL_SQL92_STRING_FUNCTIONS 3.0 Eine SQLUINTEGER-Bitmaske, die die Zeichenfolgenskaerfunktionen aufzählt, die vom Treiber und der zugehörigen Datenquelle unterstützt werden, wie in SQL-92 definiert.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Zeichenfolgenfunktionen unterstützt werden:
SQL_SSF_CONVERT
SQL_SSF_LOWERSQL_SSF_UPPER
SQL_SSF_SUBSTRING
SQL_SSF_TRANSLATE
SQL_SSF_TRIM_BOTH
SQL_SSF_TRIM_LEADING
SQL_SSF_TRIM_TRAILING
SQL_SQL92_VALUE_EXPRESSIONS 3.0 Eine SQLUINTEGER-Bitmaske, die die unterstützten Wertausdrücke aufzählt, wie in SQL-92 definiert.

Die SQL-92- oder FIPS-Konformitätsstufe, auf der dieses Feature unterstützt werden muss, wird in Klammern neben jeder Bitmaske angezeigt.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Optionen von der Datenquelle unterstützt werden:
SQL_SVE_CASE (Zwischenstufe)
SQL_SVE_CAST (FIPS-Übergangsstufe)
SQL_SVE_COALESCE (Zwischenstufe)
SQL_SVE_NULLIF (Zwischenstufe)
SQL_STANDARD_CLI_CONFORMANCE 3.0 Eine SQLUINTEGER-Bitmaske, die den CLI-Standard oder -Standards aufzählt, dem der Treiber entspricht. Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Ebenen der Treiber erfüllt:
SQL_SCC_XOPEN_CLI_VERSION1: Der Treiber entspricht der Open Group CLI Version 1.
SQL_SCC_ISO92_CLI: Der Treiber entspricht der ISO 92 CLI.
SQL_STATIC_CURSOR_ATTRIBUTES1 3.0 Eine SQLUINTEGER-Bitmaske, die die Attribute eines statischen Cursors beschreibt, die vom Treiber unterstützt werden. Diese Bitmaske enthält die erste Teilmenge der Attribute; die zweite Teilmenge finden Sie unter SQL_STATIC_CURSOR_ATTRIBUTES2.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Attribute unterstützt werden:
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Beschreibungen dieser Bitmasken finden Sie unter SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (und ersetzen Sie "statischer Cursor" für "dynamischen Cursor" in den Beschreibungen).

Ein SQL-92-Treiber mit Konformer Ebene gibt in der Regel die SQL_CA1_NEXT, SQL_CA1_ABSOLUTE und SQL_CA1_RELATIVE Optionen wie unterstützt zurück, da der Treiber bildlauffähige Cursor über die eingebettete SQL FETCH-Anweisung unterstützt. Da dies nicht direkt die zugrunde liegende SQL-Unterstützung bestimmt, werden bildlauffähige Cursor möglicherweise nicht unterstützt, auch für einen SQL-92-Treiber mit mittlerer Ebene.
SQL_STATIC_CURSOR_ATTRIBUTES2 3.0 Eine SQLUINTEGER-Bitmaske, die die Attribute eines statischen Cursors beschreibt, die vom Treiber unterstützt werden. Diese Bitmaske enthält die zweite Teilmenge von Attributen; die erste Teilmenge finden Sie unter SQL_STATIC_CURSOR_ATTRIBUTES1.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Attribute unterstützt werden:
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Beschreibungen dieser Bitmasken finden Sie unter SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (und ersetzen Sie "statischer Cursor" für "dynamischen Cursor" in den Beschreibungen).
SQL_STRING_FUNCTIONS 1.0 Hinweis: Der Informationstyp wurde in ODBC 1.0 eingeführt; Jede Bitmaske wird mit der Version beschriftet, in der sie eingeführt wurde.

Eine SQLUINTEGER-Bitmaske, die die skalaren Zeichenfolgenfunktionen aufzählt, die vom Treiber und der zugehörigen Datenquelle unterstützt werden.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Zeichenfolgenfunktionen unterstützt werden:
SQL_FN_STR_ASCII (ODBC 1.0)
SQL_FN_STR_BIT_LENGTH (ODBC 3.0)
SQL_FN_STR_CHAR (ODBC 1.0)
SQL_FN_STR_CHAR_LENGTH (ODBC 3.0)
SQL_FN_STR_CHARACTER_LENGTH (ODBC 3.0)
SQL_FN_STR_CONCAT (ODBC 1.0)
SQL_FN_STR_DIFFERENCE (ODBC 2.0)
SQL_FN_STR_INSERT (ODBC 1.0)
SQL_FN_STR_LCASE (ODBC 1.0)
SQL_FN_STR_LEFT (ODBC 1.0)
SQL_FN_STR_LENGTH (ODBC 1.0)
SQL_FN_STR_LOCATE (ODBC 1.0)
SQL_FN_STR_LTRIM (ODBC 1.0)
SQL_FN_STR_OCTET_LENGTH (ODBC 3.0)
SQL_FN_STR_POSITION (ODBC 3.0)
SQL_FN_STR_REPEAT (ODBC 1.0)
SQL_FN_STR_REPLACE (ODBC 1.0)
SQL_FN_STR_RIGHT (ODBC 1.0)
SQL_FN_STR_RTRIM (ODBC 1.0)
SQL_FN_STR_SOUNDEX (ODBC 2.0)
SQL_FN_STR_SPACE (ODBC 2.0)
SQL_FN_STR_SUBSTRING (ODBC 1.0)
SQL_FN_STR_UCASE (ODBC 1.0)

Wenn eine Anwendung die LOCATE-Skalarfunktion mit den string_exp1, string_exp2 und Startargumenten aufrufen kann, gibt der Treiber die SQL_FN_STR_LOCATE Bitmaske zurück. Wenn eine Anwendung die LOCATE-Skalarfunktion nur mit den argumenten string_exp1 und string_exp2 aufrufen kann, gibt der Treiber die SQL_FN_STR_LOCATE_2 Bitmaske zurück. Treiber, die die LOCATE-Skalarfunktion vollständig unterstützen, geben beide Bitmasken zurück.

(Weitere Informationen finden Sie unter Zeichenfolgenfunktionen in Anhang E, "Skalare Funktionen".)
SQL_SUBQUERIES 2.0 Eine SQLUINTEGER-Bitmaske, die die Prädikate aufzählt, die Unterabfragen unterstützen:
SQL_SQ_CORRELATED_SUBQUERIES
SQL_SQ_COMPARISON
SQL_SQ_EXISTS
SQL_SQ_INSQL_SQ_QUANTIFIED

Die SQL_SQ_CORRELATED_SUBQUERIES Bitmaske gibt an, dass alle Prädikate, die Unterabfragen unterstützen, korrelierte Unterabfragen unterstützen.

Ein SQL-92 Entry Level-conformant-Treiber gibt immer eine Bitmaske zurück, in der alle diese Bits festgelegt sind.
SQL_SYSTEM_FUNCTIONS 1.0 Eine SQLUINTEGER-Bitmaske, die die skalaren Systemfunktionen aufzählt, die vom Treiber und der zugehörigen Datenquelle unterstützt werden.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Systemfunktionen unterstützt werden:
SQL_FN_SYS_DBNAME
SQL_FN_SYS_IFNULL
SQL_FN_SYS_USERNAME
SQL_TABLE_TERM 1.0 Eine Zeichenfolge mit dem Namen des Datenquellenanbieters für eine Tabelle; z. B. "Tabelle" oder "Datei".

Diese Zeichenfolge kann in Groß-, Klein- oder Kleinschreibung vorliegen.

Ein SQL-92-Treiber für die Einstiegsebene gibt immer "Tabelle" zurück.
SQL_TIMEDATE_ADD_INTERVALS 2.0 Eine SQLUINTEGER-Bitmaske zum Aufzählen der Zeitstempelintervalle, die vom Treiber und der zugehörigen Datenquelle für die Skalarfunktion TIMESTAMPADD unterstützt werden.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Intervalle unterstützt werden:
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

Ein FIPS-Konformer Treiber für die Übergangsstufe gibt immer eine Bitmaske zurück, in der alle diese Bits festgelegt sind.
SQL_TIMEDATE_DIFF_INTERVALS 2.0 Eine SQLUINTEGER-Bitmaske zum Aufzählen der Zeitstempelintervalle, die vom Treiber und der zugehörigen Datenquelle für die Skalarfunktion TIMESTAMPDIFF unterstützt werden.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Intervalle unterstützt werden:
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

Ein FIPS-Konformer Treiber für die Übergangsstufe gibt immer eine Bitmaske zurück, in der alle diese Bits festgelegt sind.
SQL_TIMEDATE_FUNCTIONS 1.0 Hinweis: Der Informationstyp wurde in ODBC 1.0 eingeführt; Jede Bitmaske wird mit der Version beschriftet, in der sie eingeführt wurde.

Eine SQLUINTEGER-Bitmaske, die die skalaren Datums- und Uhrzeitfunktionen aufzählt, die vom Treiber und der zugehörigen Datenquelle unterstützt werden.

Die folgenden Bitmasken werden verwendet, um zu bestimmen, welche Datums- und Uhrzeitfunktionen unterstützt werden:
SQL_FN_TD_CURRENT_DATE (ODBC 3.0)
SQL_FN_TD_CURRENT_TIME (ODBC 3.0)
SQL_FN_TD_CURRENT_TIMESTAMP (ODBC 3.0)
SQL_FN_TD_CURDATE (ODBC 1.0)
SQL_FN_TD_CURTIME (ODBC 1.0)
SQL_FN_TD_DAYNAME (ODBC 2.0)
SQL_FN_TD_DAYOFMONTH (ODBC 1.0)
SQL_FN_TD_DAYOFWEEK (ODBC 1.0)
SQL_FN_TD_DAYOFYEAR (ODBC 1.0)
SQL_FN_TD_EXTRACT (ODBC 3.0)
SQL_FN_TD_HOUR (ODBC 1.0)
SQL_FN_TD_MINUTE (ODBC 1.0)
SQL_FN_TD_MONTH (ODBC 1.0)
SQL_FN_TD_MONTHNAME (ODBC 2.0)
SQL_FN_TD_NOW (ODBC 1.0)
SQL_FN_TD_QUARTER (ODBC 1.0)
SQL_FN_TD_SECOND (ODBC 1.0)
SQL_FN_TD_TIMESTAMPADD (ODBC 2.0)
SQL_FN_TD_TIMESTAMPDIFF (ODBC 2.0)
SQL_FN_TD_WEEK (ODBC 1.0)
SQL_FN_TD_YEAR (ODBC 1.0)
SQL_TXN_CAPABLE 1.0 Hinweis: Der Informationstyp wurde in ODBC 1.0 eingeführt; jeder Rückgabewert wird mit der Version beschriftet, in der er eingeführt wurde.

Ein SQLUSMALLINT-Wert, der die Transaktionsunterstützung im Treiber oder der Datenquelle beschreibt:
SQL_TC_NONE = Transaktionen werden nicht unterstützt. (ODBC 1.0)
SQL_TC_DML = Transaktionen können nur DML-Anweisungen (Data Manipulation Language) (SELECT, INSERT, UPDATE, DELETE) enthalten. DDL-Anweisungen (Data Definition Language) in einer Transaktion verursachen einen Fehler. (ODBC 1.0)
SQL_TC_DDL_COMMIT = Transaktionen dürfen nur DML-Anweisungen enthalten. DDL-Anweisungen (CREATE TABLE, DROP INDEX usw.) in einer Transaktion führen dazu, dass die Transaktion zugesichert wird. (ODBC 2.0)
SQL_TC_DDL_IGNORE = Transaktionen dürfen nur DML-Anweisungen enthalten. DDL-Anweisungen in einer Transaktion werden ignoriert. (ODBC 2.0)
SQL_TC_ALL = Transaktionen können DDL-Anweisungen und DML-Anweisungen in beliebiger Reihenfolge enthalten. (ODBC 1.0)

(Da die Unterstützung von Transaktionen in SQL-92 obligatorisch ist, gibt ein SQL-92-konformer Treiber [beliebige Ebene] niemals SQL_TC_NONE zurück.)
SQL_TXN_ISOLATION_OPTION 1.0 Eine SQLUINTEGER-Bitmaske, die die Transaktionsisolationsstufen aufzählt, die vom Treiber oder der Datenquelle verfügbar sind.

Die folgenden Bitmasken werden zusammen mit dem Flag verwendet, um zu bestimmen, welche Optionen unterstützt werden:
SQL_TXN_READ_UNCOMMITTED
SQL_TXN_READ_COMMITTED
SQL_TXN_REPEATABLE_READ
SQL_TXN_SERIALIZABLE

Beschreibungen dieser Isolationsstufen finden Sie in der Beschreibung der SQL_DEFAULT_TXN_ISOLATION.

Um die Transaktionsisolationsstufe festzulegen, ruft eine Anwendung SQLSetConnectAttr auf, um das attribut SQL_ATTR_TXN_ISOLATION festzulegen. Weitere Informationen finden Sie unter SQLSetConnectAttr Function.

Ein SQL-92 Entry Level-conformant-Treiber gibt immer SQL_TXN_SERIALIZABLE wie unterstützt zurück. Ein FIPS-konformer Treiber für Die Übergangsstufe gibt immer alle diese Optionen wie unterstützt zurück.
SQL_UNION 2.0 Eine SQLUINTEGER-Bitmaske, die die Unterstützung für die UNION-Klausel aufzählt:
SQL_U_UNION = Die Datenquelle unterstützt die UNION-Klausel .
SQL_U_UNION_ALL = Die Datenquelle unterstützt das ALL-Schlüsselwort in der UNION-Klausel . (SQLGetInfo gibt in diesem Fall sowohl SQL_U_UNION als auch SQL_U_UNION_ALL zurück.)

Ein SQL-92-Treiber für die Einstiegsebene gibt immer beide Optionen wie unterstützt zurück.
SQL_USER_NAME 1.0 Eine Zeichenfolge mit dem Namen, der in einer bestimmten Datenbank verwendet wird, die sich vom Anmeldenamen unterscheiden kann.
SQL_XOPEN_CLI_YEAR 3.0 Eine Zeichenfolge, die das Jahr der Veröffentlichung der Open Group-Spezifikation angibt, mit der die Version des ODBC-Treiber-Managers vollständig erfüllt ist.

Beispiel

SQLGetInfo gibt Listen der unterstützten Optionen als SQLUINTEGER-Bitmaske in *InfoValuePtr zurück. Die Bitmaske für jede Option wird zusammen mit dem Flag verwendet, um zu bestimmen, ob die Option unterstützt wird.

Beispielsweise kann eine Anwendung den folgenden Code verwenden, um zu bestimmen, ob die SKALARfunktion SUBSTRING vom Treiber unterstützt wird, der der Verbindung zugeordnet ist.

Ein weiteres Beispiel für die Verwendung von SQLGetInfo finden Sie unter "SQLTables Function".

SQLUINTEGER fFuncs;  
  
SQLGetInfo(hdbc,  
           SQL_STRING_FUNCTIONS,  
           (SQLPOINTER)&fFuncs,  
           sizeof(fFuncs),  
           NULL);  
  
// SUBSTRING supported  
if (fFuncs & SQL_FN_STR_SUBSTRING)  
   ;   // do something  
  
// SUBSTRING not supported  
else  
   ;   // do something else  

Zurückgeben der Einstellung eines Verbindungsattributes
SQLGetConnectAttr-Funktion

Bestimmen, ob ein Treiber eine Funktion unterstützt
SQLGetFunctions-Funktion

Zurückgeben der Einstellung eines Anweisungsattributs
SQLGetStmtAttr-Funktion

Zurückgeben von Informationen zu datentypen einer Datenquelle
SQLGetTypeInfo-Funktion

Weitere Informationen

ODBC-API-Referenz
ODBC-Headerdateien