Schnittstellenübereinstimmung auf Kernebene
Alle ODBC-Treiber müssen mindestens die Schnittstellenkonformität auf Core-Ebene aufweisen. Da die Features auf der Core-Ebene diejenigen sind, die von den meisten generischen interoperablen Anwendungen benötigt werden, kann der Treiber mit solchen Anwendungen arbeiten. Die Features auf der Core-Ebene entsprechen auch den in der ISO CLI-Spezifikation definierten Features und den nichtoptionalen Features, die in der Open Group CLI-Spezifikation definiert sind. Ein schnittstellenkonformer ODBC-Treiber auf Core-Ebene ermöglicht der Anwendung, alle folgenden Aktionen auszuführen:
Weisen Sie alle Arten von Handles zu, und geben Sie diese frei, indem Sie SQLAllocHandle und SQLFreeHandle aufrufen.
Verwenden Sie alle Formen der SQLFreeStmt-Funktion .
Binden von Resultsetspalten durch Aufrufen von SQLBindCol.
Behandeln Sie dynamische Parameter, einschließlich Arrays von Parametern, nur in der Eingaberichtung, indem Sie SQLBindParameter und SQLNumParams aufrufen. (Parameter in der Ausgaberichtung sind Feature 203 in Level 2 Interface Conformance.)
Geben Sie einen Bindungsoffset an.
Verwenden Sie das Dialogfeld "Daten bei ausführung" mit Aufrufen von SQLParamData und SQLPutData.
Verwalten Sie Cursor und Cursornamen, indem Sie SQLCloseCursor, SQLGetCursorName und SQLSetCursorName aufrufen.
Erhalten Sie Zugriff auf die Beschreibung (Metadaten) von Resultsets, indem Sie SQLColAttribute, SQLDescribeCol, SQLNumResultCols und SQLRowCount aufrufen. (Die Verwendung dieser Funktionen für die Spaltennummer 0 zum Abrufen von Lesezeichenmetadaten ist feature 204 in Level 2 Interface Conformance.)
Abfragen des Datenwörterbuchs durch Aufrufen der Katalogfunktionen SQLColumns, SQLGetTypeInfo, SQLStatistics und SQLTables.
Der Treiber ist nicht erforderlich, um mehrteilige Namen von Datenbanktabellen und -ansichten zu unterstützen. (Weitere Informationen finden Sie unter Feature 101 in Konformität der Schnittstelle der Ebene 1 und Feature 201 in der Konformität der Schnittstelle der Ebene 2.) Bestimmte Merkmale der SQL-92-Spezifikation, wie z. B. Spaltenqualifizierung und Namen von Indizes, sind jedoch syntaktisch mit der Benennung von mehrteiligen Daten vergleichbar. Die aktuelle Liste der ODBC-Features soll keine neuen Optionen in diese Aspekte von SQL-92 einführen.
Verwalten Sie Datenquellen und Verbindungen, indem Sie SQLConnect, SQLDataSources, SQLDisconnect und SQLDriverConnect aufrufen. Rufen Sie Informationen zu Treibern ab, unabhängig davon, welche ODBC-Ebene sie unterstützen, indem Sie SQLDrivers aufrufen.
Vorbereiten und Ausführen von SQL-Anweisungen durch Aufrufen von SQLExecDirect, SQLExecute und SQLPrepare.
Rufen Sie eine Zeile eines Resultsets oder mehrerer Zeilen nur in Vorwärtsrichtung ab, indem Sie SQLFetch oder SQLFetchScroll aufrufen, wobei das Argument FetchOrientation auf SQL_FETCH_NEXT festgelegt ist.
Rufen Sie eine ungebundene Spalte in Teilen ab, indem Sie SQLGetData aufrufen.
Rufen Sie aktuelle Werte aller Attribute ab, indem Sie SQLGetConnectAttr, SQLGetEnvAttr und SQLGetStmtAttr aufrufen und alle Attribute auf ihre Standardwerte festlegen und bestimmte Attribute auf nicht standardmäßige Werte festlegen, indem Sie SQLSetConnectAttr, SQLSetEnvAttr und SQLSetStmtAttr aufrufen.
Bearbeiten Sie bestimmte Felder von Deskriptoren, indem Sie SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField und SQLSetDescRec aufrufen.
Abrufen von Diagnoseinformationen durch Aufrufen von SQLGetDiagField und SQLGetDiagRec.
Erkennen von Treiberfunktionen durch Aufrufen von SQLGetFunctions und SQLGetInfo. Ermitteln Sie außerdem das Ergebnis aller Textersetzungen, die an eine SQL-Anweisung vorgenommen wurden, bevor sie an die Datenquelle gesendet wird, indem Sie SQLNativeSql aufrufen.
Verwenden Sie die Syntax von SQLEndTran , um eine Transaktion zu übernehmen. Ein Treiber auf Core-Ebene muss keine echten Transaktionen unterstützen; Daher kann die Anwendung weder SQL_ROLLBACK noch SQL_AUTOCOMMIT_OFF für das SQL_ATTR_AUTOCOMMIT Verbindungsattribute angeben. (Weitere Informationen finden Sie unter Feature 109 in Level 2 Interface Conformance.)
Rufen Sie SQLCancel auf, um das Dialogfeld "Daten bei Ausführung" abzubrechen, und brechen Sie in Multithreadumgebungen eine ODBC-Funktion ab, die in einem anderen Thread ausgeführt wird. Die Übereinstimmung der Schnittstelle auf Kernebene stellt keine Unterstützung für die asynchrone Ausführung von Funktionen oder die Verwendung von SQLCancel zum asynchronen Abbrechen einer ODBC-Funktion dar. Weder die Plattform noch der ODBC-Treiber müssen multithread sein, damit der Treiber unabhängige Aktivitäten gleichzeitig durchführt. In Multithreadumgebungen muss der ODBC-Treiber jedoch threadsicher sein. Die Serialisierung von Anforderungen aus der Anwendung ist eine konforme Möglichkeit, diese Spezifikation zu implementieren, auch wenn sie schwerwiegende Leistungsprobleme verursachen kann.
Rufen Sie die SQL_BEST_ROWID Zeilenidentifikationsspalte von Tabellen ab, indem Sie SQLSpecialColumns aufrufen. (Unterstützung für SQL_ROWVER ist Feature 208 in Level 2 Interface Conformance.)
Wichtig
ODBC-Treiber müssen die Funktionen auf der Core-Schnittstellenkonformitätsebene implementieren.