IDBSchemaRowsetImpl-Klasse
Bietet die Implementierung für Schemarowsets.
Syntax
template <class SessionClass>
class ATL_NO_VTABLE IDBSchemaRowsetImpl : public IDBSchemaRowset
Parameter
SessionClass
Die Klasse, mit der IDBSchemaRowsetImpl
geerbt wird. Diese Klasse ist in der Regel die Sitzungsklasse des Benutzers.
Anforderungen
Header: „atldb.h“
Member
Methoden
Name | Beschreibung |
---|---|
CheckRestrictions | Überprüft die Gültigkeit von Einschränkungen für ein Schemarowset. |
CreateSchemaRowset | Implementiert eine COM-Objekterstellerfunktion für das mit dem Vorlagenparameter angegebene Objekt. |
SetRestrictions | Gibt an, welche Einschränkungen Sie für ein bestimmtes Schemarowset unterstützen. |
Schnittstellenmethoden
Name | Beschreibung |
---|---|
GetRowset | Gibt ein Schemarowset zurück. |
GetSchemas | Gibt eine Liste der Schemarowsets zurück, auf die IDBSchemaRowsetImpl::GetRowsetzugreifen kann. |
Hinweise
Diese Klasse implementiert die IDBSchemaRowset -Schnittstelle und die vorlagenbasierte Erstellerfunktion CreateSchemaRowset.
OLE DB verwendet die Schemarowsets, um Daten zu den Daten in einem Anbieter zurückzugeben. Solche Daten werden häufig als "Metadaten" bezeichnet. Standardmäßig muss ein Anbieter immer , und , wie in IDBSchemaRowset in der OLE DB-Programmierreferenz beschrieben.DBSCHEMA_PROVIDER_TYPES
DBSCHEMA_COLUMNS
DBSCHEMA_TABLES
Schemarowsets werden in einer Schemazuordnung festgelegt. Informationen zu den Schemazuordnungseinträgen finden Sie unter SCHEMA_ENTRY.
Der OLE DB-Anbieterassistent im ATL-Objektassistenten generiert automatisch Code für die Schemarowsets in Ihrem Projekt. (Standardmäßig unterstützt der Assistent die zuvor erwähnten obligatorischen Schema-Rowsets.) Wenn Sie einen Consumer mithilfe des ATL-Objekt-Assistenten erstellen, verwendet der Assistent Schema-Rowsets, um die richtigen Daten an einen Anbieter zu binden. Wenn Sie die Schemarowsets nicht implementieren, um die richtigen Metadaten bereitzustellen, bindet der Assistent nicht die richtigen Daten.
Informationen über die Unterstützung für Schemarowsets in Ihrem Anbieter finden Sie unter Supporting Schema Rowsets(Unterstützen von Schemarowsets).
Weitere Informationen zu Schemarowsets finden Sie unter Schema Rowsets (Schemarowsets) in der OLE DB-Programmiererreferenz.
IDBSchemaRowsetImpl::CheckRestrictions
Überprüft die Gültigkeit von Einschränkungen für ein Schemarowset.
Syntax
HRESULT CheckRestrictions(REFGUID rguidSchema,
ULONG cRestrictions, const VARIANT rgRestrictions[]);
Parameter
rguidSchema
[in] Ein Verweis auf die angeforderte Schemarowset-GUID (z. B. DBSCHEMA_TABLES
).
cRestrictions
[in] Die Anzahl der Einschränkungen, die der Consumer für das Schemarowset übergeben hat.
rgRestrictions
[in] Ein Längenarray von cRestrictions von festzulegenden Einschränkungswerten. Weitere Informationen finden Sie in der Beschreibung des Parameters "rgRestrictions" in SetRestrictions.
Hinweise
Verwenden Sie CheckRestrictions
, um die Gültigkeit von Einschränkungen für ein Schemarowset zu überprüfen. Sie überprüft Einschränkungen für DBSCHEMA_TABLES
DBSCHEMA_COLUMNS
Rowsets und DBSCHEMA_PROVIDER_TYPES
Schemazeilen. Rufen Sie sie auf, um festzustellen, ob der Anruf IDBSchemaRowset::GetRowset
eines Verbrauchers korrekt ist. Wenn Sie andere als die oben aufgeführten Schemarowsets unterstützen möchten, sollten Sie Ihre eigene Funktion zum Ausführen dieser Aufgabe erstellen.
CheckRestrictions
bestimmt, ob der Consumer GetRowset mit der richtigen Einschränkung und dem richtigen Einschränkungstyp aufruft (z. B. eine VT_BSTR für eine Zeichenfolge), die der Anbieter unterstützt. Es bestimmt außerdem, ob die richtige Anzahl von Einschränkungen unterstützt werden. Standardmäßig fragt CheckRestrictions
den Anbieter mittels des Aufrufs von SetRestrictions , welche Einschränkungen für ein angegebenes Rowset unterstützt werden. Es vergleicht dann die Einschränkungen vom Consumer mit den vom Anbieter unterstützten, wobei der Vergleich entweder erfolgreich ist oder fehlschlägt.
Weitere Informationen zu Schema-Rowsets finden Sie unter IDBSchemaRowset in der OLE DB Programmer's Reference im Windows SDK.
IDBSchemaRowsetImpl::CreateSchemaRowset
Implementiert eine COM-Objekterstellerfunktion für das mit dem Vorlagenparameter angegebene Objekt.
Syntax
template template <class SchemaRowsetClass>
HRESULT CreateSchemaRowset(IUnknown *pUnkOuter,
ULONG cRestrictions,
const VARIANT rgRestrictions[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown** ppRowset,
SchemaRowsetClass*& pSchemaRowset);
Parameter
pUnkOuter
[in] Ein äußerer IUnknown beim Aggregieren, andernfalls NULL.
cRestrictions
[in] Die Anzahl der Einschränkungen für das Schemarowset.
rgRestrictions
[in] Ein Array auf das Rowset anzuwendender cRestrictions
VARIANTen.
riid
[in] Die Schnittstelle zu QueryInterface für die Ausgabe IUnknown
.
cPropertySets
[in] Die Anzahl der festzulegenden Eigenschaftensätze.
rgPropertySets
[in] Ein Array von DBPROPSET -Strukturen, die die festzulegenden Eigenschaften angeben.
ppRowset
[out] Die von riid angeforderte ausgehende IUnknown
Anforderung. Dies IUnknown
ist eine Schnittstelle für das Schema rowset-Objekt.
pSchemaRowset
[out] Ein Zeiger auf eine Instanz der Schemarowsetklasse. Dieser Parameter wird in der Regel nicht verwendet, kann jedoch verwendet werden, wenn Sie mehr Arbeit in das Schemarowset investieren müssen, bevor Sie es einem COM-Objekt übergeben. Die Lebensdauer von pSchemaRowset ist durch ppRowset gebunden.
Rückgabewert
Ein HRESULT-Standardwert.
Hinweise
Diese Funktion implementiert einen generischen Ersteller für alle Typen von Schemarowsets. In der Regel ruft der Benutzer diese Funktion nicht auf. Sie wird durch die Implementierung der Schemazuordnung aufgerufen.
IDBSchemaRowsetImpl::SetRestrictions
Gibt an, welche Einschränkungen Sie für ein bestimmtes Schemarowset unterstützen.
Syntax
void SetRestrictions(ULONG cRestrictions,
GUID* /* rguidSchema */,
ULONG* rgRestrictions);
Parameter
cRestrictions
[in] Die Anzahl der Einschränkungen im rgRestrictions-Array und die Anzahl der GUIDs im rguidSchema-Array .
rguidSchema
[in] Ein Array von GUIDs der Schemarowsets, für die Einschränkungen abgerufen werden sollen. Jedes Arrayelement enthält die GUID eines Schemarowsets (z. B. DBSCHEMA_TABLES
).
rgRestrictions
[in] Ein Längenarray von cRestrictions von festzulegenden Einschränkungswerten. Jedes Element entspricht den Einschränkungen für das Schemarowset, das mit der GUID identifiziert wird. Wenn ein Schemarowset nicht vom Anbieter unterstützt wird, wird das Element auf 0 (null) festgelegt. Andernfalls enthält der ULONG -Wert eine Bitmaske, die die Einschränkungen darstellt, die für dieses Schemarowset unterstützt werden. Weitere Informationen dazu, welche Einschränkungen einem bestimmten Schema-Rowset entsprechen, finden Sie in der Tabelle der Schema-Rowset-GUIDs in IDBSchemaRowset in der OLE DB-Programmierreferenz im Windows SDK.
Hinweise
Das IDBSchemaRowset
Objekt ruft SetRestrictions
auf, um zu bestimmen, welche Einschränkungen Sie für ein bestimmtes Schema-Rowset unterstützen (es wird von GetSchemas über einen hochcasteten Zeiger aufgerufen). Einschränkungen ermöglichen es Consumern, nur die übereinstimmende Zeilen abzurufen (z. B. Suche nach allen Spalten in der Tabelle „MyTable“). Einschränkungen sind optional, und wenn keine unterstützt werden (Standardeinstellung), werden immer alle Daten zurückgegeben.
Die Standardimplementierung dieser Methode legt die rgRestrictions-Arrayelemente auf 0 fest. Überschreiben Sie die Standardeinstellung in Ihrer Sitzungsklasse, um Einschränkungen festzulegen, die vom Standard abweichen.
Informationen zum Implementieren der Schemarowset-Unterstützung finden Sie unter Unterstützen von Schemarowsets.
Ein Beispiel für einen Anbieter, der Schemarowsets unterstützt, finden Sie unter dem Beispiel UpdatePV .
Weitere Informationen zu Schema-Rowsets finden Sie unter IDBSchemaRowset in der OLE DB Programmer's Reference im Windows SDK.
IDBSchemaRowsetImpl::GetRowset
Gibt ein Schemarowset zurück.
Syntax
STDMETHOD (GetRowset)(IUnknown *pUnkOuter,
REFGUID rguidSchema,
ULONG cRestrictions,
const VARIANT rgRestrictions[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown **ppRowset);
Parameter
pUnkOuter
[in] Ein äußeres IUnknown
Element beim Aggregieren; andernfalls NULL.
rguidSchema
[in] Ein Verweis auf die angeforderte Schemarowset-GUID (z. B. DBSCHEMA_TABLES
).
cRestrictions
[in] Die Anzahl der Einschränkungen, die auf das Schemarowset angewendet werden sollen.
rgRestrictions
[in] Ein Array von cRestrictions
VARIANTs, die die Einschränkungen darstellen.
riid
[in] Die anzufordernde IID des neu erstellten Schemarowsets.
cPropertySets
[in] Die Anzahl der festzulegenden Eigenschaftensätze.
rgPropertySets
[in/out] Ein Array von DBPROPSET -Strukturen, die für das neu erstellte Schemarowset festgelegt werden sollen.
ppRowset
[out] Ein Zeiger auf die angeforderte Schnittstelle für das neu erstellte Schemarowset.
Hinweise
Für diese Methode muss der Benutzer eine Schemazuordnung in der Sitzungsklasse haben. Mithilfe der Schemazuordnungsinformationen wird ein angegebenes Rowset-Objekt erstellt, GetRowset
wenn der rguidSchema-Parameter einer der GUIDs der Zuordnungseinträge entspricht. Unter SCHEMA_ENTRY finden Sie eine Beschreibung des Zuordnungseintrags.
Siehe IDBSchemaRowset::GetRowset im Windows SDK.
IDBSchemaRowsetImpl::GetSchemas
Gibt eine Liste der Schemarowsets zurück, auf die IDBSchemaRowsetImpl::GetRowsetzugreifen kann.
Syntax
STDMETHOD (GetSchema s )(ULONG * pcSchemas,
GUID ** prgSchemas,
ULONG** prgRest);
Parameter
pcSchemas
[out] Ein Zeiger auf eine ULONG , die mit der Anzahl von Schemas gefüllt ist.
prgSchemas
[out] Ein Zeiger auf ein Array von GUIDs, das mit einem Zeiger auf ein Array von Schemarowset-GUIDs gefüllt ist.
prgRest
[out] Ein Zeiger auf ein Array von ULONGs, das mit dem Einschränkungsarray gefüllt werden soll.
Hinweise
Diese Methode gibt ein Array aller Schemarowsets zurück, die vom Anbieter unterstützt werden. Siehe IDBSchemaRowset::GetSchemas im Windows SDK.
Für die Implementierung dieser Funktion muss der Benutzer eine Schemazuordnung in der Sitzungsklasse haben. Mithilfe der Schemazuordnungsinformationen antwortet die Funktion dann mit dem Array von GUIDs für die Schemas in der Zuordnung. Dies stellt die Schemas dar, die vom Anbieter unterstützt werden.
Siehe auch
Schemarowset-Klassen und Typedef-Klassen
Supporting Schema Rowsets
SCHEMA_ENTRY
UpdatePV