Megosztás:


ODBC-kurzorok

Egy alkalmazás az adatokat egy kurzorral lekéri. A kurzor eltér az eredményhalmaztól: Az eredményhalmaz az adott keresési feltételeknek megfelelő sorok halmaza, míg a kurzor az a szoftver, amely ezeket a sorokat az alkalmazásnak adja vissza. A kurzor neve, ahogy az adatbázisokra vonatkozik, valószínűleg a számítógép terminálján villogó kurzorról kapta az elnevezését. Ahogyan a kurzor a képernyőn az aktuális pozíciót jelzi, és ahol a beírt szavak legközelebb megjelennek, az eredményhalmaz kurzora az eredményhalmaz aktuális pozícióját jelzi, és a következő sor lesz visszaadva.

Az ODBC-ben a kurzormodell a beágyazott SQL-ben található kurzormodellen alapul. A modellek közötti egyik jelentős különbség a kurzorok megnyitásának módja. Beágyazott SQL-ben a kurzort explicit módon deklarálni és megnyitni kell a használat előtt. Az ODBC-ben a kurzor implicit módon nyílik meg egy eredményhalmazt létrehozó utasítás végrehajtásakor. A kurzor megnyitásakor az eredményhalmaz első sora elé kerül. A beágyazott SQL-ben és az ODBC-ben is be kell zárni a kurzort, miután az alkalmazás befejezte a használatát.

A különböző kurzorok különböző jellemzőkkel rendelkeznek. A leggyakoribb, csak előre mutató kurzornak nevezett típusú kurzor csak az eredményhalmazon haladhat előre. Az előző sorhoz való visszatéréshez az alkalmazásnak be kell zárnia és újra meg kell nyitnia a kurzort, majd be kell olvasnia a sorokat az eredményhalmaz elejéről, amíg el nem éri a szükséges sort. A csak előre mutató kurzorok gyors mechanizmust biztosítanak az eredményhalmazon való áthaladáshoz.

A csak előre mutató kurzorok kevésbé hasznosak a képernyőalapú alkalmazások esetében, amelyekben a felhasználó hátrafelé görget és végighalad az adatokon. Az ilyen alkalmazások használhatnak csak előre mozogni képes kurzort azáltal, hogy az eredményhalmazt egyszer olvassák, az adatokat helyben gyorsítótárazzák, és azután a görgetést maguk végzik el. Ez azonban csak kis mennyiségű adat esetén működik jól. Jobb megoldás egy görgethető kurzor használata, amely véletlenszerű hozzáférést biztosít az eredményhalmazhoz. Az ilyen alkalmazások úgy is növelhetik a teljesítményt, hogy egyszerre több adatsort kérnek le egy blokkkurzor használatával. A blokkkurzorokról további információt a Blokkkurzorok használata című témakörben talál.

A csak előre mutató kurzor az ODBC alapértelmezett kurzortípusa, amelyről az alábbi szakaszokban olvashat. A kurzorok és a görgethető kurzorok blokkolásáról további információt a Kurzorok és görgethető kurzorok blokkolása című témakörben talál.

Fontos

A tranzakció véglegesítése vagy visszagörgetése, akár az SQLEndTran explicit meghívásával, akár automatikus véglegesítési üzemmódban történik, arra késztet egyes adatforrásokat, hogy zárják be a kapcsolat összes utasításának összes kurzorát. További információkért tekintse meg az SQLGetInfo függvény leírásában található SQL_CURSOR_COMMIT_BEHAVIOR és SQL_CURSOR_ROLLBACK_BEHAVIOR attribútumokat.