Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Většina možností posouvání v SQLFetchScroll umístí kurzor vzhledem k aktuální pozici nebo absolutní pozici. SQLFetchScroll podporuje načtení dalších, předchozích, prvních a posledních sad řádků a také relativní načtení (načtení sady řádků n řádků od začátku aktuální sady řádků) a absolutní načtení (načtení sady řádků od řádku n). Pokud je hodnota n záporné při absolutním načítání, řádky se počítají od konce sady výsledků. Absolutní načtení řádku -1 znamená načtení sady řádků, která začíná posledním řádkem v sadě výsledků.
Dynamické kurzory detekují řádky vložené do a odebrané ze sady výsledků, takže je pro ně obtížné načíst řádek na konkrétním čísle jinak, než vyžaduje načítání od začátku sady výsledků, což může být pomalé. Kromě toho absolutní načítání není velmi užitečné v dynamických kurzorech, protože čísla řádků se mění při vkládání a odstraňování řádků; proto následné načtení stejného čísla řádku může přinést různé řádky.
Aplikace, které používají SQLFetchScroll pouze pro funkce blokového kurzoru, jako jsou sestavy, budou pravděpodobně procházet sadu výsledků jednou, a to pouze pomocí možnosti načíst další sadu řádků. Na druhou stranu aplikace založené na obrazovkách můžou využívat všechny možnosti SQLFetchScrollu. Pokud aplikace nastaví velikost sady řádků na počet řádků zobrazených na obrazovce a naváže vyrovnávací paměti obrazovky na sadu výsledků, může operace posuvníku přeložit přímo na volání SQLFetchScroll.
| Operace posuvníku | Možnost rolování SQLFetchScroll |
|---|---|
| Stránka nahoru | SQL_FETCH_PRIOR |
| Stránka dolů | SQL_FETCH_NEXT |
| Seřadit se | SQL_FETCH_RELATIVE s |
| Řádek dolů | SQL_FETCH_RELATIVE s hodnotou FetchOffset rovnou 1 |
| Posuvník nahoře | SQL_FETCH_FIRST |
| Posuvník dole | SQL_FETCH_LAST |
| Pozice náhodného scrollovacího pole | SQL_FETCH_ABSOLUTE |
Tyto aplikace také potřebují umístit posuvník po operaci posouvání, což vyžaduje číslo aktuálního řádku a počet řádků. Pro aktuální číslo řádky mohou aplikace buď sledovat aktuální číslo řádky, případně zavolat SQLGetStmtAttr s atributem SQL_ATTR_ROW_NUMBER k jeho načtení.
Počet řádků v kurzoru, což je velikost sady výsledků, je k dispozici jako pole SQL_DIAG_CURSOR_ROW_COUNT záhlaví diagnostiky. Hodnota v tomto poli je definována pouze po volání SQLExecute, SQLExecDirect nebo SQLMoreResult . Tento počet může být buď přibližný, nebo přesný počet v závislosti na schopnostech řidiče. Podporu ovladače lze určit voláním sqlGetInfo s typy informací o atributech kurzoru a kontrolou, zda SQL_CA2_CRC_APPROXIMATE nebo SQL_CA2_CRC_EXACT bit je vrácen pro typ kurzoru.
Přesný počet řádků není nikdy podporován dynamickým kurzorem. U jiných typů kurzorů může ovladač podporovat přesný nebo přibližný počet řádků, ale ne obojí. Pokud ovladač nepodporuje přesný ani přibližný počet řádků pro určitý typ kurzoru, pole SQL_DIAG_CURSOR_ROW_COUNT obsahuje počet řádků, které byly dosud načteny. Bez ohledu na to, co ovladač podporuje, SQLFetchScroll s operací SQL_FETCH_LAST způsobí, že pole SQL_DIAG_CURSOR_ROW_COUNT bude obsahovat přesný počet řádků.