Sdílet prostřednictvím


ODBC: Knihovna kurzorů rozhraní ODBC

Toto téma popisuje knihovnu kurzorů rozhraní ODBC a vysvětluje, jak ji používat. Více informací naleznete:

  • Knihovna kurzorů a ovladače rozhraní ODBC úroveň 1

  • Umístěné aktualizace a sloupce Timestamp

  • Použití knihovny kurzorů

Knihovna kurzorů rozhraní ODBC je dynamická knihovna (knihovna DLL) umístěná mezi správce ovladače rozhraní ODBC a ovladač. Z hlediska rozhraní ODBC si ovladač udržuje kurzor k tomu, aby měl přehled o jeho umístění v sadě záznamů. Kurzor označí pozici v sadě záznamů, ke které jste se již posunuli – aktuální záznam.

Knihovna kurzorů a ovladače rozhraní ODBC úroveň 1

Knihovna kurzorů rozhraní ODBC poskytuje ovladačům úrovně 1 následující nové funkce:

  • Posun vpřed a zpět. Ovladače úrovně 2 nepotřebují knihovnu kurzorů, protože jsou již posuvné.

  • Podpora pro snímky. Knihovna kurzorů spravuje vyrovnávací paměť, která obsahuje záznamy snímku. Tato vyrovnávací paměť odráží vaše programové odstranění a úpravy záznamů, ale ne přidávání, odstranění nebo úpravy ostatních uživatelů. Snímek je tedy pouze tak aktuální, jako vyrovnávací paměť knihovny kurzorů. Vyrovnávací paměť také neodráží vaše vlastní přídavky dokud nezavoláte Requery. Dynamické sady nepoužívají knihovnu kurzorů.

Knihovna kurzorů Vám poskytne snímky (statické kurzory), dokonce ikdyž nejsou podporovány vaším ovladačem. Jestliže váš ovladač již podporuje statické kurzory, nemusíte načíst knihovnu kurzorů, abyste získali podporu snímků. Použijete-li knihovnu kurzorů, můžete použít pouze snímky a dopředné sady záznamů. Pokud ovladač podporuje dynamické sady (kurzory KEYSET_DRIVEN) a chcete je použít, nesmíte použít knihovnu kurzorů. Pokud chcete používat snímky i dynamické sady a Váš ovladač je nepodporuje současně, musíte použít dva různé objekty CDatabase (dvě různá připojení).

Umístěné aktualizace a sloupce Timestamp

Poznámka

Zdroje dat rozhraní ODBC jsou přístupné pomocí tříd knihovny MFC rozhraní ODBC, jak je popsáno v tomto tématu nebo pomocí tříd knihovny MFC rozhraní DAO (Data Access Objects).

Poznámka

Jestliže ovladač rozhraní ODBC podporuje SQLSetPos, které používá knihovna MFC (pokud je k dispozici), tak se toto téma na Vás nevztahuje.

Většina ovladačů úrovně 1 nepodporuje umístěné aktualizace. Tyto ovladače jsou závislé na knihovně kurzorů, aby emulovali možnosti ovladače úroveň 2 v této souvislosti. Knihovna kurzorů emuluje podporu umístěných aktualizací tím, že provede prohledávané aktualizace na neměnných polích.

V některých případech může sada záznamů obsahovat sloupec timestamp jako jeden z těchto neměnných polí. Pokud používáte sady záznamů knihovny MFC s tabulkami, které obsahují sloupce timestamp, mohou vzniknout dva problémy.

První problém se týká aktualizovatelných snímků v tabulkách se sloupci timestamp. Pokud obsahuje tabulka, ke které je vázán snímek, sloupec timestamp, měli byste zavolat Requery poté co voláte Edit a Update. V opačném případě nebude pravděpodobně možné znovu úpravit tentýž záznam. Pokud voláte Edit a poté Update, záznam je zapsán do zdroje dat a sloupec timestamp je aktualizován. Pokud nezavoláte Requery, hodnota časového razítka pro záznam ve vašem snímku již neodpovídá odpovídajícímu časovému razítku ve zdroji dat. Pokud se znovu pokusíte o aktualizaci záznamu, zdroj dat může zakázat aktualizace z důvodu nesouladu.

Druhý problém se týká omezení třídy CTime, pokud je použita s funkcí RFX_Date, aby přenesla informaci o datu a času do nebo z tabulky. Zpracování objektu CTime ukládá nějakou režii ve formuláři extra pokročilého zpracování během přenosu dat. Rozsah dat objektů CTime může být také příliš omezený pro některé aplikace. Nová verze funkce RFX_Date přijímá parametr TIMESTAMP_STRUCT z rozhraní ODBC místo objektu CTime. Další informace naleznete v RFX_Date v Makra a Globals v Odkaz knihovny MFC.

Použití knihovny kurzorů

Připojujete-li se ke zdroji dat – voláním CDatabase::OpenEx nebo CDatabase::Open – můžete určit, zda použít knihovnu kurzorů pro zdroj dat. Pokud bude vytvářet snímky na tomto zdroji dat, zadejte možnost CDatabase::useCursorLib v parametru dwOptions funkce OpenEx nebo zadejte TRUE pro parametr bUseCursorLib funkce Open (výchozí hodnota je TRUE). Pokud ovladač rozhraní ODBC podporuje dynamické sady a chcete otevřít dynamické sady na zdroj dat, nepoužívejte knihovnu kurzorů (skryje některé funkce, které potřebují dynamické sady). V takovém případě nezadávejte CDatabase::useCursorLib v OpenEx nebo zadejte FALSE pro parametr bUseCursorLib v Open.

Viz také

Koncepty

Základní informace o rozhraní ODBC