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í:
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á, najdeteGetRowsetProperties
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
poClose
. Příklad kódu v CCommand::Close ukazuje, jak volatClose
aReleaseCommand
.Volání
CoUnInitialize
pro zrušení inicializace modelu COM To se volá v hlavním kódu.CoUninitialize();