Bilaga F: ODBC-markörbibliotek

Important

Den här funktionen tas bort i en framtida version av Windows. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Microsoft rekommenderar att du använder drivrutinens markörfunktioner.

ODBC:s markörbibliotek (Odbccr32.dll) stöder blockrullbara markörer för alla drivrutiner som uppfyller nivå 1 API-konformitetsnivån och kan distribueras vidare av utvecklare med deras applikationer eller drivrutiner. Markörbiblioteket stöder också positionerade uppdaterings- och borttagningssatser för resultatuppsättningar genererade av SELECT-satser. Även om den endast stöder statiska och framåtriktade markörer, uppfyller markörbiblioteket behoven hos många applikationer. Dessutom kan det ge god prestanda, särskilt för små till medelstora resultatuppsättningar, samt för applikationer som inte har bra stöd för markören.

Markörbiblioteket är ett dynamiskt länkbibliotek (DLL) som finns mellan Driver Manager och drivrutinen. När en applikation anropar en funktion anropar Driver Manager funktionen i markörbiblioteket, vilket antingen kör funktionen eller anropar den i den angivna drivrutinen. För en given anslutning specificerar en applikation om markörbiblioteket alltid ska användas, om drivrutinen inte stödjer rullbara markörer, eller aldrig används.

Markörbiblioteket visas som en drivrutin i Driver Manager. Om markörbiblioteket finns mellan Driver Manager och en ODBC 2.x-drivrutin , visas markörbiblioteket som en ODBC 2.x-drivrutin . Om markörbiblioteket finns mellan Driver Manager och en ODBC 3.x-drivrutin , visas markörbiblioteket som en ODBC 3.x-drivrutin . Beteendet som visas av markörbiblioteket beror på vilken version av drivrutinen det arbetar med, med undantag för bindningsoffsets, som stöds för både ODBC 2.x och ODBC 3.x-drivrutiner .

För att implementera blockmarkörer i SQLFetch och SQLFetchScroll anropar markörbiblioteket upprepade gånger SQLFetch i drivrutinen. För att implementera scrollning cachar den data den har hämtat i minnet och i diskfiler. När en applikation begär en ny raduppsättning hämtar markörbiblioteket den vid behov från drivrutinen eller cachen.

För att implementera positionerade uppdaterings- och borttagningssatser konstruerar markörbiblioteket ett UPDATE eller med DELETE en WHERE-klausul som specificerar det cachade värdet för varje bunden kolumn i raden. När den kör en positionerad uppdateringssats uppdaterar markörbiblioteket sin cache från värdena i raduppsättningsbuffertarna.

För mer information om ODBC:s kursorbibliotek, se följande avsnitt i detta appendix: