Sdílet prostřednictvím


Byla vytvořena sada výsledků?

Ve většině případů programátoři aplikací vědí, jestli příkazy, které aplikace spouští, vytvoří sadu výsledků. Jedná se o případ, kdy aplikace používá pevně zakódované příkazy SQL napsané programátorem. Obvykle se jedná o případ, kdy aplikace vytváří příkazy SQL za běhu: Programátor může snadno zahrnout kód, který označí, zda příkaz SELECT nebo INSERT je vytvářen. V několika situacích programátor nemůže zjistit, jestli příkaz vytvoří sadu výsledků. To platí, pokud aplikace poskytuje uživateli způsob, jak zadat a spustit příkaz SQL. Platí také v případech, kdy aplikace vytvoří příkaz za běhu, aby spustila proceduru.

V takových případech aplikace volá FUNKCI SQLNumResultCols k určení počtu sloupců v sadě výsledků. Pokud je to 0, příkaz nevytvořil sadu výsledků; pokud se jedná o jakékoli jiné číslo, příkaz vytvořil sadu výsledků.

Aplikace může kdykoli volat SQLNumResultCols po přípravě nebo spuštění příkazu. Vzhledem k tomu, že některé zdroje dat nemohou snadno popsat sady výsledků, které budou vytvořeny připravenými příkazy, bude výkon trpět, pokud je sqlNumResultCols volána po dokončení příkazu, ale před spuštěním.

Některé zdroje dat také podporují určení počtu řádků, které příkaz SQL vrátí v sadě výsledků. K tomu aplikace volá SQLRowCount. Přesně to, co představuje počet řádků, je označeno nastavením možnosti SQL_DYNAMIC_CURSOR_ATTRIBUTES2, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2, SQL_KEYSET_CURSOR_ATTRIBUTES2 nebo SQL_STATIC_CURSOR_ATTRIBUTES2 (v závislosti na typu kurzoru) vrácené voláním SQLGetInfo. Tato bitová maska označuje pro každý typ kurzoru, jestli je vrácený počet řádků přesný, přibližný nebo vůbec není k dispozici. Určuje, zda jsou počty řádků pro statické nebo kurzory řízené sadou klíčů ovlivněny změnami provedenými prostřednictvím sqlBulkOperations nebo SQLSetPos nebo umístěnými příkazy update nebo delete, závisí na jiných bitech vrácených stejnými argumenty možností, které jsou uvedeny dříve. Další informace naleznete v popisu funkce SQLGetInfo .