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.
Mnoho aplikací tráví značné množství času přenosem dat přes síť. Součástí této doby je skutečně přenesení dat přes síť a část z ní se věnuje režijním nákladům na síť, jako je například volání ovladačem k vyžádání řady dat. Doba může být zkrácena, pokud aplikace efektivně využívá blokové, šířkové nebo kurzory, které mohou vracet více než jeden řádek najednou.
Aplikace má vždy možnost použít blokový kurzor. U zdrojů dat, ze kterých lze načíst pouze jeden řádek najednou, musí být v ovladači simulovány blokové kurzory. Můžete to provést provedením několika načtení na jednom řádku. I když to pravděpodobně neposkytuje žádné zvýšení výkonu, otevírá příležitosti pro aplikace. Tyto aplikace pak budou mít vyšší výkon, protože DBMS implementují nativně blokové kurzory a ovladače přidružené k těmto DBMS je zveřejňují.
Řádky vrácené jedním načtením s kurzorem bloku se nazývají sada řádků. Je důležité nezaměňovat množinu řádků se sadou výsledků. Sada výsledků se udržuje ve zdroji dat, zatímco sada řádků se udržuje ve vyrovnávací paměti aplikace. I když je sada výsledků pevná, sada řádků není - změní umístění a obsah pokaždé, když se načte nová sada řádků. Stejně jako kurzor s jedním řádkem, jako je tradiční kurzor SQL, který odkazuje pouze na aktuální řádek, odkazuje blokový kurzor na sadu řádků, který lze považovat za aktuální řádky.
Aby bylo možné provádět operace, které pracují na jednom řádku, když bylo načteno více řádků, musí aplikace nejprve určit, který řádek je aktuálním řádkem. Aktuální řádek je vyžadován voláním SQLGetData a pozicovanými příkazy UPDATE a DELETE. Když první blokový kurzor vrátí sadu řádků, aktuální řádek je prvním řádkem sady řádků. Pokud chcete změnit aktuální řádek, aplikace volá SQLSetPos nebo SQLBulkOperations (pro aktualizaci záložkou). Následující obrázek znázorňuje vztah sady výsledků, sady řádků, aktuálního řádku, kurzoru sady řádků a blokového kurzoru. Další informace naleznete v tématu Použití blokových kurzorů, dále v této části, a Příkazy pro umístěné aktualizace a odstranění a Aktualizace dat pomocí SQLSetPos.
Zda je kurzor blokovým kurzorem nezávislý na tom, jestli se dá posunout. Například většina práce v reportovací aplikaci je věnováno načítání a tiskem řádků. Z tohoto důvodu bude fungovat nejrychleji s blokovým kurzorem, který je jen dopředu. Používá kurzor jen vpřed, aby se zabránilo nákladům posunovatelného kurzoru a blokový kurzor ke snížení síťového provozu.
Tato část obsahuje následující témata.