Sdílet prostřednictvím


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_COLUMNSa 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_TABLESsady řádků a DBSCHEMA_COLUMNSDBSCHEMA_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 cRestrictionsVARIANT, 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