Vytváření příjemce bez použití průvodce
Následující příklad předpokládá, že přidáváte podporu příjemce technologie OLE DB k existujícímu projektu knihovny ATL.Pokud chcete přidat podporu příjemce technologie OLE DB k aplikaci knihovny MFC, měli byste spustit průvodce aplikace knihovny MFC, který vytvoří všechnu potřebnou podporu a vyvolá rutiny knihovny MFC, nezbytné ke spuštění aplikace.
Chcete-li přidat podporu příjemce technologie OLE DB, bez použití průvodce příjemce knihovny ATL technologie OLE DB:
Do vašeho souboru Stdafx.h připojte následující příkazy #include:
#include <atlbase.h> #include <atldbcli.h> #include <atldbsch.h> // if you are using schema templates
Programově obvykle příjemce provádí následující sekvence operací:
Vytvořte třídu uživatelského záznamu, která propojí sloupce k lokálním proměnným.V tomto příkladu je třída CMyTableNameAccessor třídou uživatelského záznamu (viz Uživatelské záznamy).Tato třída obsahuje mapu sloupce a mapu parametru.Deklarujte datového člena ve třídě uživatelského záznamu pro každé pole, které určíte ve Vaší mapě sloupce; pro každý z těchto datových členů deklarujte také datového člena a délku datového člena.Více informací naleznete v tématuDatové členy stavu pole v přístupových objektech generovaných průvodcem.
[!POZNÁMKA]
Pokud napíšete vlastního příjemce, data proměnné musí předcházet stavu a délce proměnných.
Vytvoření instance zdroje dat a relace.Rozhodněte se, jaký typ přistupujícího objektu a sady řádků používat, a potom vytvořte instanci sady řádků pomocí CCommand nebo CTable:
CDataSource ds; CSession ss; class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor> >
Zavolejte CoInitialize k inicializaci modelu COM.Toto je obvykle voláno v hlavním kódu.Příklad:
HRESULT hr = CoInitialize(NULL);
Zavolejte CDataSource::Open nebo jednu z jeho variant.
Otevřete připojení ke zdroji dat, otevřete relaci a otevřete a inicializaci sady řádků (a je-li příkaz, tak ho také spusťte):
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ředávat je jako parametr na rs.Open. Příklad způsobu provedení naleznete v GetRowsetProperties v tématu Vygenerované metody průvodcem příjemce.
Nyní můžete použít sadu řádků k načtení/manipulování s daty.
Když je aplikace ukončena, zavře připojení, relaci a sadu řádků:
rs.Close(); ss.Close(); ds.Close();
Pokud používáte příkaz, budete chtít volat ReleaseCommand po Close.Příklad kódu v CCommand::Close ukazuje, jak volat Close a ReleaseCommand.
Zavolejte CoUnInitialize k inicializaci modelu COM.Toto je obvykle voláno v hlavním kódu.
CoUninitialize();