Sdílet prostřednictvím


Uživatelské záznamy

Poznámka:

Průvodce příjemcem ATL OLE DB není v sadě Visual Studio 2019 a novější k dispozici. Funkci můžete přidat ručně. Další informace naleznete v tématu Vytvoření příjemce bez použití průvodce.

Pokud chcete použít statického přístupového objektu (tj. přístupového objektu odvozeného z CAccessor), musí mít uživatel uživatelský záznam. Záznam uživatele je třída jazyka C++, která obsahuje datové prvky pro zpracování vstupu nebo výstupu. Průvodce příjemcem ATL OLE DB vygeneruje záznam uživatele pro vašeho příjemce. Do záznamu uživatele můžete přidat metody pro volitelné úlohy, jako je zpracování příkazů.

Následující kód ukazuje ukázkový záznam, který zpracovává příkazy. V záznamu uživatele BEGIN_COLUMN_MAP představuje sadu řádků dat předanou příjemci od poskytovatele. BEGIN_PARAM_MAP představuje sadu parametrů příkazu. Tento příklad používá CCommand třídy ke zpracování parametrů příkazu. Datové členy v položkách mapy představují posuny do jednoho souvislého bloku paměti pro každou instanci třídy. Makra COLUMN_ENTRY odpovídají PROVIDER_COLUMN_ENTRY makrech na straně poskytovatele.

Další informace o makrech COLUMN_MAP a PARAM_MAP naleznete v tématu Makra pro šablony příjemců OLE DB.

class CArtists
{
public:
// Data Elements
   CHAR m_szFirstName[20];
   CHAR m_szLastName[30];
   short m_nAge;

// Column binding map
BEGIN_COLUMN_MAP(CArtists)
   COLUMN_ENTRY(1, m_szFirstName)
   COLUMN_ENTRY(2, m_szLastName)
   COLUMN_ENTRY(3, m_nAge)
END_COLUMN_MAP()

// Parameter binding map
BEGIN_PARAM_MAP(CArtists)
   COLUMN_ENTRY(1, m_nAge)
END_PARAM_MAP()
};

Záznamy uživatele generované průvodcem

Pokud k vygenerování příjemce použijete Průvodce příjemcem ATL OLE DB, máte možnost použít šablony OLE DB nebo atributy OLE DB. Vygenerovaný kód se v každém případě liší. Další informace o tomto kódu naleznete v tématu Consumer Wizard-Generated Classes.

Podpora záznamů uživatele pro více přístupových objektů

Podrobné informace o scénářích, ve kterých potřebujete použít více přístupových objektů, najdete v tématu Použití více přístupových objektů v sadě řádků.

Následující příklad ukazuje záznam uživatele upravený tak, aby podporoval více přístupových objektů v sadě řádků. Místo BEGIN_COLUMN_MAP a END_COLUMN_MAP používá pro každý přístup BEGIN_ACCESSOR_MAP a BEGIN_ACCESSOR . Makro BEGIN_ACCESSOR určuje číslo přístupového objektu (posun od nuly) a zda je přístupový objekt automatickýmaccessorem. Automatickéaccessory volání GetData pro automatické načítání dat při volání MoveNext. Neautomatické přístupové objekty vyžadují explicitní načtení dat. Pokud vazbuujete s velkým datovým polem (například rastrovým obrázkem), které možná nebudete chtít načíst pro každý záznam, použijte neautomatický přístup.

class CMultiArtists
{
public:
// Data Elements
   CHAR m_szFirstName[20];
   CHAR m_szLastName[30];
   short m_nAge;

// Column binding map
BEGIN_ACCESSOR_MAP(CMultiArtists, 2)
   BEGIN_ACCESSOR(0, true)    // true specifies an auto accessor
    COLUMN_ENTRY(1, m_szFirstName)
    COLUMN_ENTRY(2, m_szLastName)
   END_ACCESSOR()
   BEGIN_ACCESSOR(1, false)   // false specifies a manual accessor
    COLUMN_ENTRY(3, m_nAge)
   END_ACCESSOR()
END_ACCESSOR_MAP()
};

Viz také

Šablony příjemců OLE DB