Sdílet prostřednictvím


Vytvoření příjemce bez použití průvodce

Následující příklad předpokládá, že přidáváte podporu příjemců OLE DB do existujícího projektu ATL. Pokud chcete do aplikace MFC přidat podporu příjemce OLE DB, měli byste spustit Průvodce aplikací MFC, který vytvoří veškerou potřebnou podporu a vyvolá rutiny MFC potřebné ke spuštění aplikace.

Přidání podpory příjemce OLE DB bez použití Průvodce příjemcem ATL OLE DB:

  • Do souboru pch.h připojte následující #include příkazy:

    #include <atlbase.h>
    #include <atldbcli.h>
    #include <atldbsch.h> // if you are using schema templates
    

Příjemce obvykle provádí prostřednictvím kódu programu následující posloupnost operací:

  1. Vytvořte třídu záznamů uživatele, která spojuje sloupce s místními proměnnými. V tomto příkladu CMyTableNameAccessor je třída záznamů uživatele (viz Záznamy uživatelů). Tato třída obsahuje mapu sloupců a mapování parametrů. Deklarujte datový člen ve třídě záznamů uživatele pro každé pole, které zadáte v mapě sloupců; pro každý z těchto datových členů také deklarujte datový člen stavu a datový člen délky. Další informace naleznete v tématu Datové členy stavu pole v Průvodci generované přístupové objekty.

    Poznámka:

    Pokud napíšete vlastního příjemce, musí proměnné dat předcházet proměnným stavu a délky.

  • Vytvoření instance zdroje dat a relace Rozhodněte, jaký typ přístupového objektu a sady řádků se má použít, a pak vytvořte instanci sady řádků pomocí CCommand nebo CTable:

    CDataSource ds;
    CSession ss;
    class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor>>
    
  • Volání CoInitialize pro inicializaci modelu COM. To se volá v hlavním kódu. Příklad:

    HRESULT hr = CoInitialize(NULL);
    
  • Volejte CDataSource::Open nebo jednu z jejích variant.

  • Otevřete připojení ke zdroji dat, otevřete relaci a otevřete a inicializujete sadu řádků (a pokud příkaz, spustí se také):

    hr = ds.Open();
    hr = ss.Open(ds);
    hr = rs.Open();            // (Open also executes the command)
    
  • Volitelně můžete nastavit vlastnosti sady řádků pomocí CDBPropSet::AddProperty a předat je jako parametr .rs.Open Příklad toho, jak se to dělá, najdete GetRowsetProperties v průvodci příjemcem generovaných metod.

  • Sadu řádků teď můžete použít k načtení a manipulaci s daty.

  • Po dokončení aplikace zavřete připojení, relaci a sadu řádků:

    rs.Close();
    ss.Close();
    ds.Close();
    

    Pokud používáte příkaz, můžete zavolat ReleaseCommand po Close. Příklad kódu v CCommand::Close ukazuje, jak volat Close a ReleaseCommand.

  • Volání CoUnInitialize pro zrušení inicializace modelu COM To se volá v hlavním kódu.

    CoUninitialize();
    

Viz také

Vytvoření příjemce OLE DB