Dela via


Grundläggande gränssnittsefterlevnad

Alla ODBC-drivrutiner måste uppvisa minst grundläggande efterlevnad av gränssnitt. Eftersom funktionerna på core-nivån är de som krävs av de flesta allmänna kompatibla program kan drivrutinen arbeta med sådana program. Funktionerna på Core-nivån motsvarar också de funktioner som definierats i ISO CLI-specifikationen och de icke-alternativfunktioner som definierats i CLI-specifikationen för öppen grupp. Med en ODBC-drivrutin på kärnnivå kan programmet göra allt följande:

  • Allokera och frigör alla typer av handtag genom att anropa SQLAllocHandle och SQLFreeHandle.

  • Använd alla former av funktionen SQLFreeStmt .

  • Bind resultatuppsättningskolumner genom att anropa SQLBindCol.

  • Hantera dynamiska parametrar, inklusive matriser med parametrar, endast i indatariktningen, genom att anropa SQLBindParameter och SQLNumParams. (Parametrar i utdatariktningen är egenskap 203 i Level 2 Interface Conformance.)

  • Ange bindningsförskjutning.

  • Använd dialogrutan data-at-execution med anrop till SQLParamData och SQLPutData.

  • Hantera markörer och markörnamn genom att anropa SQLCloseCursor, SQLGetCursorName och SQLSetCursorName.

  • Få åtkomst till beskrivningen (metadata) för resultatuppsättningar genom att anropa SQLColAttribute, SQLDescribeCol, SQLNumResultCols och SQLRowCount. (Användning av dessa funktioner på kolumnnummer 0 för att hämta bokmärkesmetadata är funktion 204 i Nivå 2-gränssnittsöverensstämmelse.)

  • Fråga dataordlistan genom att anropa katalogfunktionerna SQLColumns, SQLGetTypeInfo, SQLStatistics och SQLTables.

    Drivrutinen behöver inte stödja multipartnamn för databastabeller och vyer. (Mer information finns i funktion 101 i Level 1 Interface Conformance and feature 201 in Level 2 Interface Conformance.) Vissa funktioner i SQL-92-specifikationen, till exempel kolumnkvalifikation och namn på index, är dock syntaktiskt jämförbara med namngivning av flera delar. Den aktuella listan över ODBC-funktioner är inte avsedd att introducera nya alternativ i dessa aspekter av SQL-92.

  • Hantera datakällor och anslutningar genom att anropa SQLConnect, SQLDataSources, SQLDisconnect och SQLDriverConnect. Hämta information om drivrutiner, oavsett vilken ODBC-nivå de stöder, genom att anropa SQLDrivers.

  • Förbered och kör SQL-instruktioner genom att anropa SQLExecDirect, SQLExecute och SQLPrepare.

  • Hämta en rad i en resultatuppsättning eller flera rader, endast i framåtriktad riktning, genom att anropa SQLFetch eller genom att anropa SQLFetchScroll med argumentet FetchOrientation inställt på SQL_FETCH_NEXT.

  • Hämta en obunden kolumn i delar genom att anropa SQLGetData.

  • Hämta aktuella värden för alla attribut genom att anropa SQLGetConnectAttr, SQLGetEnvAttr och SQLGetStmtAttr, och ange alla attribut till deras standardvärden och ange vissa attribut till nondefault-värden genom att anropa SQLSetConnectAttr, SQLSetEnvAttr och SQLSetStmtAttr.

  • Manipulera vissa fält med deskriptorer genom att anropa SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField och SQLSetDescRec.

  • Hämta diagnostikinformation genom att anropa SQLGetDiagField och SQLGetDiagRec.

  • Identifiera drivrutinsfunktioner genom att anropa SQLGetFunctions och SQLGetInfo. Identifiera också resultatet av eventuella textersättningar som görs till en SQL-instruktion innan den skickas till datakällan genom att anropa SQLNativeSql.

  • Använd syntaxen för SQLEndTran för att genomföra en transaktion. En kärnnivådrivrutin behöver inte ha stöd för sanna transaktioner. Därför kan programmet inte ange SQL_ROLLBACK eller SQL_AUTOCOMMIT_OFF för SQL_ATTR_AUTOCOMMIT-anslutningsattributet. (Mer information finns i funktion 109 i Level 2 Interface Conformance.)

  • Anropa SQLCancel för att avbryta processen där data behandlas vid exekvering och, i flertrådsmiljöer, för att avbryta en ODBC-funktion som körs i en annan tråd. Gränssnittsöverensstämmelse på kärnnivå kräver inte stöd för asynkron körning av funktioner eller användning av SQLCancel för att avbryta en ODBC-funktion som körs asynkront. Varken plattformen eller ODBC-drivrutinen behöver vara flertrådade för att drivrutinen ska kunna utföra oberoende aktiviteter samtidigt. I miljöer med flera trådar måste dock ODBC-drivrutinen vara trådsäker. Serialisering av begäranden från programmet är ett konformt sätt att implementera den här specifikationen, även om det kan skapa allvarliga prestandaproblem.

  • Hämta kolumnen som identifierar rader med SQL_BEST_ROWID för tabellerna genom att anropa SQLSpecialColumns. (Stöd för SQL_ROWVER är funktion 208 i Level 2 Interface Conformance.)

    Viktigt!

    ODBC-drivrutiner måste implementera funktionerna på Core-gränssnittets efterlevnadsnivå.