Použití knihovny kurzorů ODBC

Important

Tato funkce se odebere v budoucí verzi Windows. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Microsoft doporučuje používat funkci kurzoru ovladače.

Pro použití knihovny kurzorů ODBC existuje aplikace:

  1. Volá SQLSetConnectAttr s atributem SQL_ATTR_ODBC_CURSORS aby specifikoval, jak má být knihovna kurzoru použita s konkrétním spojením. Knihovna kurzorů může být vždy použita (SQL_CUR_USE_ODBC), použita pouze tehdy, pokud ovladač nepodporuje posuvné kurzory (SQL_CUR_USE_IF_NEEDED), nebo nikdy nepoužita (SQL_CUR_USE_DRIVER).

  2. Volá SQLConnect, SQLDriverConnect nebo SQLBrowseConnect pro připojení ke zdroji dat.

  3. Volá SQLSetStmtAttr pro určení typu kurzoru (SQL_ATTR_CURSOR_TYPE), souběžnosti (SQL_ATTR_CONCURRENCY) a velikosti řádků (SQL_ATTR_ROW_ARRAY_SIZE). Knihovna kurzorů podporuje pouze vpřed a statické kurzory. Kurzory pouze pro dopředu musí být pouze pro čtení, zatímco statické kurzory mohou být pouze pro čtení nebo mohou používat optimickou kontrolu souběžnosti porovnávající hodnoty.

  4. přidělí jeden nebo více řádkových bufferů a volá SQLBindCol jednou nebo vícekrát, aby tyto buffery navázal na sloupce výsledků.

  5. Generuje množinu výsledků vykonáním příkazu SELECT nebo procedury, případně voláním katalogové funkce. Pokud aplikace spustí příkazy pro aktualizaci s pozicemi, měla by spustit příkaz SELECT FOR UPDATE pro generování výsledné sady.

  6. Volá SQLFetch nebo SQLFetchScroll jednou nebo vícekrát, aby prošel výslednou sadu.

Aplikace může měnit datové hodnoty v bufferech řádků. Pro obnovení řádkových bufferů daty z cache knihovny kurzorů aplikace volá SQLFetchScroll s argumentem FetchOrientation nastaveným na SQL_FETCH_RELATIVE a argumentem FetchOffset nastaveným na 0.

Pro získání dat z nevázaného sloupce aplikace volá SQLSetPos a umístí kurzor na požadovaný řádek. Poté volá SQLGetData , aby data získala.

Pro určení počtu řádků získaných ze zdroje dat aplikace volá SQLRowCount.