Sdílet prostřednictvím


Sada záznamů: Architektura (ODBC)

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

Toto téma popisuje datové členy, které tvoří architekturu objektu sady záznamů:

  • Pole datových členů

  • Parametry datových členů

  • Použití datových členů m_nFields a m_nParams

[!POZNÁMKA]

Toto téma se týká objektů odvozených z třídy CRecordset, ve které nebylo naimplementováno hromadné načítání řádku. Pokud je naimplementováno hromadné načítání řádku, tak je architektura podobná.Chcete-li porozumět rozdílům, viz sady záznamů: Fetching Records in Bulk (ODBC).

Vzorová třída

Pokud použijete Průvodce příjemce knihovny MFC rozhraní ODBC z průvodce Přidat třídu, abyste deklarovali třídu sady záznamů odvozenou z CRecordset, výsledná třída má obecnou strukturu, která je uvedena jako následující jednoduchá třída:

class CCourse : public CRecordset
{
public:
   CCourse(CDatabase* pDatabase = NULL);
   ...
   CString m_strCourseID;
   CString m_strCourseTitle;
   CString m_strIDParam;
};

Na začátek třídy průvodce zapíše sadu polí datových členů.Při vytváření třídy je nutné zadat jeden nebo více polí datových členů.Pokud je třída parametrizovaná, jako je ukázková třída (s datovým členem m_strIDParam), je třeba ručně přidat parametry datových členů.Průvodce nepodporuje přidávání parametrů do třídy.

Pole datových členů

Nejdůležitější členové vaší třídy sady záznamů jsou pole datových členů.Pro každý sloupec, který vyberete ze zdroje dat, třída obsahuje datový člen odpovídajícího datového typu pro daný sloupec.Například vzorová třída, která byla ukázaná na začátku tohoto tématu, má dvě pole datových členů, obě typu CString, s názvem m_strCourseID a m_strCourseTitle.

Když sada záznamů vybere sadu záznamů, systém automaticky naváže sloupce aktuálního záznamu (poté, co je volána funkce Open, první záznam je aktuální) na pole datových členů objektu.Systém používá příslušné pole datového člena jako vyrovnávací paměť, ve které ukládá obsah sloupce záznamu.

Jak se uživatel posune na nový záznam, systém použije pole datových členů k reprezentaci aktuálního záznamu.Systém aktualizuje pole datových členů tak, že nahradí hodnoty v předchozím záznamu.Pole datových členů se také používá pro aktualizaci aktuálního záznamu a pro přidávání nových záznamů.Jako součást procesu aktualizace záznamu zadáte hodnoty aktualizace tím, že přiřadíte hodnoty přímo do příslušného pole datového člena nebo členů.

Parametry datových členů

Pokud je třída parametrizována, má jeden nebo více parametrů datových členů.Parametrizovaná třída vám umožňuje založit dotaz sady záznamů na informacích získaných nebo vypočtených za běhu.

Parametr obvykle pomůže zúžit výběr, jako v následujícím příkladu.Na základě ukázkové třídy na začátku tohoto tématu, může objekt sady záznamů spustit následující příkaz SQL:

SELECT CourseID, CourseTitle FROM Course WHERE CourseID = ?

"?" je zástupný symbol pro hodnotu parametru, kterou zadáte za běhu.Když vytvoříte sadu záznamů a nastavíte jeho datový člen m_strIDParam na MATH101, efektivní příkaz SQL pro sadu záznamů se změní na:

SELECT CourseID, CourseTitle FROM Course WHERE CourseID = MATH101

Definováním parametrů datových členů informujete systém o parametrech v řetězci SQL.Systém váže parametr, který informuje rozhraní ODBC, kde může získat hodnoty pro nahrazení zástupného symbolu.Výsledná sada záznamů v příkladu obsahuje pouze záznam z tabulky Course se sloupcem CourseID, jehož hodnota je MATH101.Vyberou se všechny zadané sloupce tohoto záznamu.Můžete zadat tolik parametrů (a zástupných symbolů) kolik potřebujete.

[!POZNÁMKA]

Knihovna MFC nedělá nic s parametry – zejména neprovádí nahrazování textu.Místo toho knihovna MFC informuje rozhraní ODBC, kde získat parametr; rozhraní ODBC načítá data a provede nezbytné parametrizace.

[!POZNÁMKA]

Důležité je pořadí parametrů.Informace o tomto a další informace o parametrech naleznete v tématu Sada záznamů: parametrizování sada záznamů (rozhraní ODBC).

Použití m_nFields a m_nParams

Když průvodce zapíše konstruktor pro vaši třídu, také inicializuje datový člen m_nFields, který určuje počet polí datových členů ve třídě.Pokud přidáte některé parametry do vaší třídy, je nutné také přidat inicializaci pro datový člen m_nParams, který určuje počet parametrů datových členů.Systém použije tyto hodnoty pro práci s datovými členy.

Další informace a příklady naleznete v tématu Výměna pole záznamu: Použití RFX.

Viz také

Koncepty

Sada záznamů (ODBC)

Sada záznamů: Deklarování třídy pro tabulku (ODBC)

Výměna pole záznamu (Record Field Exchange – RFX)