IDBSchemaRowsetImpl – třída
Poskytuje implementaci pro sady řádků schématu.
Syntaxe
template <class SessionClass>
class ATL_NO_VTABLE IDBSchemaRowsetImpl : public IDBSchemaRowset
Parametry
SessionClass
Třída, podle které IDBSchemaRowsetImpl
je zděděna. Obvykle tato třída bude třídou relace uživatele.
Požadavky
Hlavička: atldb.h
Členové
Metody
Název | Popis |
---|---|
CheckRestrictions | Kontroluje platnost omezení u sady řádků schématu. |
CreateSchemaRowset | Implementuje funkci tvůrce objektu modelu COM pro objekt určený parametrem šablony. |
SetRestrictions | Určuje, která omezení podporujete u konkrétní sady řádků schématu. |
Metody rozhraní
Název | Popis |
---|---|
GetRowset | Vrátí sadu řádků schématu. |
GetSchemas | Vrátí seznam sad řádků schématu, které jsou přístupné pomocí IDBSchemaRowsetImpl::GetRowset. |
Poznámky
Tato třída implementuje IDBSchemaRowset rozhraní a templatized creator funkce CreateSchemaRowset.
OLE DB používá sady řádků schématu k vrácení dat o datech ve zprostředkovateli. Taková data se často označují jako metadata. Ve výchozím nastavení musí zprostředkovatel vždy podporovat DBSCHEMA_TABLES
, DBSCHEMA_COLUMNS
a DBSCHEMA_PROVIDER_TYPES
, jak je popsáno v IDBSchemaRowset v odkazech programátora OLE DB. Sady řádků schématu jsou určeny v mapě schématu. Informace o položkách mapování schématu najdete v tématu SCHEMA_ENTRY.
Průvodce zprostředkovatelem OLE DB v Průvodci objektem ATL automaticky vygeneruje kód pro sady řádků schématu v projektu. (Ve výchozím nastavení průvodce podporuje dříve zmíněné sady řádků povinného schématu.) Když vytvoříte příjemce pomocí Průvodce objektem ATL, průvodce použije sady řádků schématu k vytvoření vazby správných dat k poskytovateli. Pokud neimplementujete sady řádků schématu tak, aby poskytovaly správná metadata, průvodce nebude svázat správná data.
Informace o tom, jak podporovat sady řádků schématu ve zprostředkovateli, naleznete v tématu Podpora sad řádků schématu.
Další informace o sadách řádků schématu naleznete v tématu Sady řádků schématu v odkazech programátora OLE DB.
IDBSchemaRowsetImpl::CheckRestrictions
Kontroluje platnost omezení u sady řádků schématu.
Syntaxe
HRESULT CheckRestrictions(REFGUID rguidSchema,
ULONG cRestrictions, const VARIANT rgRestrictions[]);
Parametry
rguidSchema
[v] Odkaz na identifikátor GUID sady řádků požadovaného schématu (například DBSCHEMA_TABLES
).
cRestrictions
[v] Počet omezení, která příjemce předal pro sadu řádků schématu.
rgRestrictions
[v] Pole délky cRestrictions hodnot omezení, které se mají nastavit. Další informace naleznete v popisu parametru rgRestrictions v SetRestrictions.
Poznámky
Slouží CheckRestrictions
ke kontrole platnosti omezení u sady řádků schématu. Kontroluje omezení pro DBSCHEMA_TABLES
sady řádků a DBSCHEMA_COLUMNS
DBSCHEMA_PROVIDER_TYPES
schématu. Zavolejte ji, abyste zjistili, jestli je hovor IDBSchemaRowset::GetRowset
příjemce správný. Pokud chcete podporovat jiné sady řádků schématu než ty uvedené výše, měli byste vytvořit vlastní funkci, která tuto úlohu provede.
CheckRestrictions
určuje, zda příjemce volá GetRowset se správným omezením a správným typem omezení (například VT_BSTR pro řetězec), který poskytovatel podporuje. Určuje také, jestli se podporuje správný počet omezení. Ve výchozím nastavení CheckRestrictions
se poskytovatele zeptá prostřednictvím volání SetRestrictions , která omezení podporuje u dané sady řádků. Pak porovná omezení od příjemce s omezeními podporovanými poskytovatelem a buď proběhne úspěšně, nebo selže.
Další informace o sadách řádků schématu najdete v tématu IDBSchemaRowset v referenční dokumentaci programátora OLE DB v sadě Windows SDK.
IDBSchemaRowsetImpl::CreateSchemaRowset
Implementuje funkci tvůrce objektu modelu COM pro objekt určený parametrem šablony.
Syntaxe
template template <class SchemaRowsetClass>
HRESULT CreateSchemaRowset(IUnknown *pUnkOuter,
ULONG cRestrictions,
const VARIANT rgRestrictions[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown** ppRowset,
SchemaRowsetClass*& pSchemaRowset);
Parametry
pUnkOuter
[v] Vnější IUnknown při agregaci, jinak NULL.
cRestrictions
[v] Počet omezení použitých u sady řádků schématu.
rgRestrictions
[v] Pole cRestrictions
VARIANT, které se má použít u sady řádků.
riid
[v] Rozhraní queryInterface pro výstup IUnknown
.
cPropertySets
[v] Počet vlastností, které se mají nastavit.
rgPropertySets
[v] Pole struktur DBPROPSET , které určují vlastnosti, které jsou nastaveny.
ppRowset
[ven] Odchozí IUnknown
požadavek riid. Toto IUnknown
je rozhraní objektu sady řádků schématu.
pSchemaRowset
[ven] Ukazatel na instanci třídy sady řádků schématu. Obvykle se tento parametr nepoužívá, ale lze ho použít, pokud před předáním objektu COM potřebujete na sadě řádků schématu provádět více práce. Životnost pSchemaRowset je vázána ppRowset.
Návratová hodnota
Standardní hodnota HRESULT.
Poznámky
Tato funkce implementuje obecného tvůrce pro všechny typy sad řádků schématu. Obvykle uživatel tuto funkci nevolá. Volá se implementací mapy schématu.
IDBSchemaRowsetImpl::SetRestrictions
Určuje, která omezení podporujete u konkrétní sady řádků schématu.
Syntaxe
void SetRestrictions(ULONG cRestrictions,
GUID* /* rguidSchema */,
ULONG* rgRestrictions);
Parametry
cRestrictions
[v] Počet omezení v matici rgRestrictions a počet identifikátorů GUID v matici rguidSchema .
rguidSchema
[v] Pole identifikátorů GUID sad řádků schématu, pro které se mají načíst omezení. Každý prvek pole obsahuje identifikátor GUID jedné sady řádků schématu (například DBSCHEMA_TABLES
).
rgRestrictions
[v] Pole délky cRestrictions hodnot omezení, které se mají nastavit. Každý prvek odpovídá omezením sady řádků schématu identifikované identifikátorem GUID. Pokud zprostředkovatel nepodporuje sadu řádků schématu, je prvek nastaven na nulu. Jinak hodnota ULONG obsahuje bitovou masku, která představuje omezení podporovaná v sadě řádků schématu. Další informace o tom, která omezení odpovídají konkrétní sadě řádků schématu, naleznete v tabulce identifikátorů GUID sady řádků schématu v IDBSchemaRowset v odkazech programátorů OLE DB v sadě Windows SDK.
Poznámky
Volání IDBSchemaRowset
objektu SetRestrictions
k určení omezení, která podporujete u konkrétní sady řádků schématu (je volána metodou GetSchemas prostřednictvím upcastovaného ukazatele). Omezení umožňují uživatelům načíst pouze odpovídající řádky (například najít všechny sloupce v tabulce MyTable). Omezení jsou volitelná a v případě, že nejsou podporovány žádné (výchozí), vrátí se vždy všechna data.
Výchozí implementace této metody nastaví elementy pole rgRestrictions na hodnotu 0. Přepište výchozí hodnotu třídy relace tak, aby nastavil jiná omezení než výchozí.
Informace o implementaci podpory sady řádků schématu naleznete v tématu Podpora sad řádků schématu.
Příklad zprostředkovatele, který podporuje sady řádků schématu, najdete v ukázce UpdatePV .
Další informace o sadách řádků schématu najdete v tématu IDBSchemaRowset v referenční dokumentaci programátora OLE DB v sadě Windows SDK.
IDBSchemaRowsetImpl::GetRowset
Vrátí sadu řádků schématu.
Syntaxe
STDMETHOD (GetRowset)(IUnknown *pUnkOuter,
REFGUID rguidSchema,
ULONG cRestrictions,
const VARIANT rgRestrictions[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown **ppRowset);
Parametry
pUnkOuter
[v] Vnější IUnknown
při agregaci; jinak NULL.
rguidSchema
[v] Odkaz na identifikátor GUID sady řádků požadovaného schématu (například DBSCHEMA_TABLES
).
cRestrictions
[v] Početomezeních
rgRestrictions
[v] Pole variantcRestrictions
, které představují omezení.
riid
[v] IID k vyžádání nově vytvořené sady řádků schématu.
cPropertySets
[v] Počet vlastností, které se mají nastavit.
rgPropertySets
[in/out] Pole struktur DBPROPSET , které se mají nastavit na nově vytvořené sadě řádků schématu.
ppRowset
[ven] Ukazatel na požadované rozhraní v nově vytvořené sadě řádků schématu.
Poznámky
Tato metoda vyžaduje, aby uživatel měl ve třídě relace mapování schématu. Pomocí informací o mapování schématu vytvoří daný objekt sady řádků, GetRowset
pokud je parametr rguidSchema roven jedné z identifikátorů GUID položek mapy. Popis položky mapy najdete v SCHEMA_ENTRY .
Viz IDBSchemaRowset::GetRowset v sadě Windows SDK.
IDBSchemaRowsetImpl::GetSchemas
Vrátí seznam sad řádků schématu, které jsou přístupné pomocí IDBSchemaRowsetImpl::GetRowset.
Syntaxe
STDMETHOD (GetSchema s )(ULONG * pcSchemas,
GUID ** prgSchemas,
ULONG** prgRest);
Parametry
pcSchemas
[ven] Ukazatel na ULONG , který je naplněn počtem schémat.
prgSchemas
[ven] Ukazatel na pole identifikátorů GUID, které je vyplněné ukazatelem na pole identifikátorů GUID sady řádků schématu.
prgRest
[ven] Ukazatel na pole ULONGs, které má být vyplněno maticí omezení.
Poznámky
Tato metoda vrátí pole všech sad řádků schématu podporované poskytovatelem. Viz IDBSchemaRowset::GetSchemas v sadě Windows SDK.
Implementace této funkce vyžaduje, aby uživatel měl ve třídě relace mapování schématu. Pomocí informací o mapě schématu pak odpoví polem identifikátorů GUID pro schémata v mapě. Představuje schémata podporovaná poskytovatelem.
Viz také
Třídy sady řádků schématu a definiční třídy typů
Podpora sad řádků schématu
SCHEMA_ENTRY
UpdatePV