Sdílet prostřednictvím


Sada záznamů (ODBC)

Toto téma platí pro třídy knihovny MFC rozhraní ODBC.

Objekt CRecordset představuje sadu záznamů, které jsou vybrané ze zdroje dat.Záznamy mohou být z:

  • Tabulky.

  • Dotazu.

  • Uložené procedury, která přistupuje k jedné nebo více tabulkám.

"Všichni zákazníci" je příklad sady záznamů, která je založena na tabulce, jenž přistupuje k tabulce Zákazník.Příklad dotazu: "všechny faktury pro Jana Nováka." Příklad sady záznamů založené na uložené proceduře (někdy označované jako předdefinovaný dotaz): "všechny nesplacené účty," jenž vyvolá proceduru uloženou v serverové databázi.Sada záznamů se může připojit ke dvěma nebo více tabulkám ze stejného datového zdroje, ale nikoli k tabulkám z různých datových zdrojů.

[!POZNÁMKA]

Více informací o odvozování sady záznamů tříd s pomocí průvodce naleznete v tématu Adding an MFC ODBC Consumer a Database Support, MFC Application Wizard.

[!POZNÁMKA]

Některé ovladače rozhraní ODBC podporují zobrazení databáze.Zobrazení je v tomto smyslu dotaz, který je původně vytvořen pomocí SQL příkazu CREATE VIEW.Průvodci aktuálně nepodporují zobrazení, ale můžete si tuto podporu kódovat sami.

Funkce sady záznamů

Všechny objekty sady záznamů sdílejí následující funkce:

  • Pokud není zdroj dat jen pro čtení, můžete určit, aby byla sada záznamů aktualizovatelná, připojitelná, nebo jen pro čtení.Pokud je sada záznamů aktualizovatelná, můžete zvolit optimistickou nebo pesimistickou metodu uzamčení, vhodnou podporu uzamčení poskytuje ovladač.Pokud je zdroj dat jen pro čtení, pak bude sada záznamů jen pro čtení.

  • Můžete volat členské funkce pro procházení vybranými záznamy.

  • Můžete filtrovat záznamy, abyste omezili, které z dostupných záznamů jsou vybrány.

  • Můžete řadit záznamy vzestupně nebo sestupně, na základě jednoho nebo více sloupců.

  • Můžete parametrizovat sadu záznamů pro získání výběru sady záznamů za běhu.

Snímky a dynamické sady

Existují dva hlavní typy sady záznamů: snímky a dynamické sady.Obě jsou podporovány třídou CRecordset.Oba sdílí společné charakteristiky všech sad záznamů, ale každý také rozšiřuje obecnou funkčnost svým vlastním způsobem.Snímky poskytují statické zobrazení dat a jsou užitečné pro sestavy a jiné situace, ve kterých chcete zobrazit data tak, jak byly určitý čas aktuální.Dynamické sady jsou užitečné v případě, kdy chcete mít zobrazeny aktualizace v sadě záznamů provedené uživateli, bez nutnosti znovu spustit dotaz nebo aktualizovat sadu záznamů.Snímky a dynamické sady mohou být aktualizovatelné nebo jen pro čtení.Proto, aby se projevilo přidání nebo odstranění záznamů uživateli, volá CRecordset::Requery.

CRecordsetposkytuje také další dva typy sad záznamů: dynamické sady záznamů a dopředné sady záznamů.Dynamické sady záznamů jsou podobné dynamickým sadám, nicméně u dynamických sad záznamů se projeví každé přidání nebo odstranění záznamu bez nutnosti volání CRecordset::Requery.Z tohoto důvodu jsou dynamické sady záznamů obvykle nákladné, s ohledem na dobu zpracování systémem správy databáze (DBMS), a mnoho ovladačů rozhraní ODBC je proto nepodporuje.Naproti tomu dopředné sady záznamů poskytují nejúčinnější metodu přístupu k datům pro sady záznamů, které nevyžadují žádné aktualizace nebo zpětné posouvání.Dopřednou sadu záznamů můžete například použít k přenášení dat z jednoho zdroje dat do druhého, pokud potřebujete procházet data pouze ve směru dopředu.Chcete-li použít dopřednou sadu záznamů, musíte provést následující:

  • Předat možnost CRecordset::forwardOnly jako parametr nOpenType členské funkce Open.

  • Zadat CRecordset::readOnly v parametru dwOptions funkce Open.

    [!POZNÁMKA]

    Informace o požadavcích ovladače rozhraní ODBC pro podporu dynamické sady naleznete v tématu ODBC.Seznam ovladačů rozhraní ODBC, které jsou součástí této verze aplikace Visual C++, a informace o získání dalších ovladačů, naleznete v tématu Seznam ovladačů rozhraní ODBC.

Sady záznamů

Pro přístup ke každé samostatné tabulce, zobrazení nebo uložené proceduře, obvykle definujete třídu odvozenou z CRecordset. (Jedinou výjimkou je databázové spojit, ve kterém jedna sada záznamů představuje sloupce ze dvou nebo více tabulek.) Při odvození třídy sady záznamů povolíte mechanismus výměny pole záznamu (RFX - record field exchange) nebo mechanismus hromadné výměny pole záznamu (Bulk RFX), které jsou podobné jako mechanismus výměny dialogových dat (DDX - dialog data exchange).RFX a Bulk RFX zjednodušují předávání dat ze zdroje dat do sady záznamů; RFX navíc přenáší data ze sady záznamů do zdroje dat.Další informace naleznete v tématu Výměna pole záznamu (RFX) a sady záznamů: Fetching Records in Bulk (ODBC).

Objekt sady záznamů umožňuje přístup ke všem vybraným záznamům.Můžete procházet více vybraných záznamů pomocí členských funkcí CRecordset, jako například MoveNext a MovePrev.Objekt sady záznamů současně představuje pouze jeden z vybraných záznamů - aktuální záznam.Deklarováním členské proměnné třídy sady záznamů, která odpovídá sloupcům tabulky nebo záznamům, které jsou výsledkem databázového dotazu, můžete prohlížet pole aktuálního záznamu.Informace o datových členech sady záznamů naleznete v tématu sady záznamů: architektura (ODBC).

Následující témata popisují podrobnosti používání objektů sady záznamů.Témata jsou seřazena ve funkčních kategoriích a v přirozeném pořadí umožňující postupné čtení.

Témata o způsobech otevření, čtení a uzavření sad záznamů.

Témata o způsobu úpravy sad záznamů

Témata o trochu pokročilejších technikách

Témata o tom, jak pracují sady záznamů

Viz také

Úkoly

Přidání příjemce rozhraní ODBC knihovny MFC

Koncepty

ODBC (Open Database Connectivity)

Transakce (ODBC)