IDBSchemaRowsetImpl — KlasaIDBSchemaRowsetImpl Class

Zapewnia implementację zestawów wierszy schematu.Provides implementation for schema rowsets.

SkładniaSyntax

template <class SessionClass>
class ATL_NO_VTABLE IDBSchemaRowsetImpl : public IDBSchemaRowset

ParametryParameters

SessionClassSessionClass
Klasa, według której IDBSchemaRowsetImpl jest dziedziczona.The class by which IDBSchemaRowsetImpl is inherited. Typowo, ta klasa będzie klasą sesji użytkownika.Typically, this class will be the user's session class.

WymaganiaRequirements

Nagłówek: ATLDB. hHeader: atldb.h

Elementy członkowskieMembers

MetodyMethods

NazwaName OpisDescription
CheckRestrictionsCheckRestrictions Sprawdza poprawność ograniczeń względem zestawu wierszy schematu.Checks the validity of restrictions against a schema rowset.
CreateSchemaRowsetCreateSchemaRowset Implementuje funkcję twórcy obiektów COM dla obiektu określonego przez parametr szablonu.Implements a COM object creator function for the object specified by the template parameter.
SetograniczeniaSetRestrictions Określa, które ograniczenia są obsługiwane dla określonego zestawu wierszy schematu.Specifies which restrictions you support on a particular schema rowset.

Metody interfejsuInterface Methods

NazwaName OpisDescription
GetRowsetGetRowset Zwraca zestaw wierszy schematu.Returns a schema rowset.
GetSchemasGetSchemas Zwraca listę zestawów wierszy schematu dostępnych przez IDBSchemaRowsetImpl:: GetRowset.Returns a list of schema rowsets accessible by IDBSchemaRowsetImpl::GetRowset.

UwagiRemarks

Ta klasa implementuje interfejs IDBSchemaRowset i funkcję Szablonowana Creator CreateSchemaRowset.This class implements the IDBSchemaRowset interface and the templatized creator function CreateSchemaRowset.

OLE DB używa zestawów wierszy schematu, aby zwracać dane dotyczące danych w dostawcy.OLE DB uses schema rowsets to return data about the data in a provider. Takie dane są często nazywane "metadanymi".Such data is often called "metadata." Domyślnie dostawca musi zawsze obsługiwać DBSCHEMA_TABLES , DBSCHEMA_COLUMNS , i DBSCHEMA_PROVIDER_TYPES , zgodnie z opisem w IDBSchemaRowset , w dokumentacji programisty OLE DB.By default, a provider must always support DBSCHEMA_TABLES, DBSCHEMA_COLUMNS, and DBSCHEMA_PROVIDER_TYPES, as described in IDBSchemaRowset in the OLE DB Programmer's Reference. Zestawy wierszy schematu są wyznaczeni w mapie schematów.Schema rowsets are designated in a schema map. Aby uzyskać informacje na temat wpisów mapy schematu, zobacz SCHEMA_ENTRY.For information about the schema map entries, see SCHEMA_ENTRY.

Kreator dostawcy OLE DB w Kreatorze obiektów ATL automatycznie generuje kod dla zestawów wierszy schematu w projekcie.The OLE DB Provider Wizard, in the ATL Object Wizard, automatically generates code for the schema rowsets in your project. (Domyślnie Kreator obsługuje obowiązkowe wcześniej wymienione zestawy wierszy schematu). Podczas tworzenia konsumenta przy użyciu kreatora obiektów ATL Kreator używa zestawów wierszy schematu, aby powiązać odpowiednie dane z dostawcą.(By default, the wizard supports the mandatory schema rowsets previously mentioned.) When you create a consumer using the ATL Object Wizard, the wizard uses schema rowsets to bind the correct data to a provider. Jeśli zestaw wierszy schematu nie zostanie wdrożony w celu zapewnienia poprawnych metadanych, Kreator nie będzie powiązać prawidłowych danych.If you do not implement your schema rowsets to provide the correct metadata, the wizard will not bind the correct data.

Aby uzyskać informacje na temat obsługi zestawów wierszy schematu w dostawcy, zobacz Obsługa zestawów wierszy schematu.For information on how to support schema rowsets in your provider, see Supporting Schema Rowsets.

Aby uzyskać więcej informacji na temat zestawów wierszy schematu, zobacz zestawy wierszy schematu w dokumentacji programisty OLE DB.For more information about schema rowsets, see Schema Rowsets in the OLE DB Programmer's Reference.

IDBSchemaRowsetImpl:: CheckRestrictionsIDBSchemaRowsetImpl::CheckRestrictions

Sprawdza poprawność ograniczeń względem zestawu wierszy schematu.Checks the validity of restrictions against a schema rowset.

SkładniaSyntax

HRESULT CheckRestrictions(REFGUID rguidSchema,
   ULONG cRestrictions,  const VARIANT rgRestrictions[]);

ParametryParameters

rguidSchemarguidSchema
podczas Odwołanie do żądanego identyfikatora GUID zestawu wierszy schematu (na przykład DBSCHEMA_TABLES ).[in] A reference to the requested schema rowset GUID (for example, DBSCHEMA_TABLES).

cRestrictionscRestrictions
podczas Liczba ograniczeń, które konsument przeszedł dla zestawu wierszy schematu.[in] The number of restrictions that the consumer passed in for the schema rowset.

rgRestrictionsrgRestrictions
podczas Tablica długości cRestrictions wartości ograniczeń, które mają zostać ustawione.[in] An array of length cRestrictions of restriction values to be set. Aby uzyskać więcej informacji, zobacz opis parametru rgRestrictions w temacie setograniczenia.For more information, see the description of the rgRestrictions parameter in SetRestrictions.

UwagiRemarks

Służy CheckRestrictions do sprawdzania poprawności ograniczeń dla zestawu wierszy schematu.Use CheckRestrictions to check the validity of restrictions against a schema rowset. Sprawdza ograniczenia dotyczące DBSCHEMA_TABLES DBSCHEMA_COLUMNS zestawów wierszy, i DBSCHEMA_PROVIDER_TYPES schematu.It checks restrictions for DBSCHEMA_TABLES, DBSCHEMA_COLUMNS, and DBSCHEMA_PROVIDER_TYPES schema rowsets. Wywołaj tę metodę, aby określić, czy wywołanie odbiorcy IDBSchemaRowset::GetRowset jest poprawne.Call it to determine if a consumer's call to IDBSchemaRowset::GetRowset is correct. Jeśli chcesz obsługiwać zestawy wierszy schematu inne niż wymienione powyżej, należy utworzyć własną funkcję do wykonania tego zadania.If you want to support schema rowsets other than those listed above, you should create your own function to carry out this task.

CheckRestrictions Określa, czy odbiorca wywołuje metodę GetRowset z prawidłowym ograniczeniem i poprawnym typem ograniczenia (na przykład VT_BSTR ciągu) obsługiwanego przez dostawcę.CheckRestrictions determines if the consumer is calling GetRowset with the correct restriction and the correct restriction type (for example, a VT_BSTR for a string) that the provider supports. Określa również, czy są obsługiwane poprawne liczby ograniczeń.It also determines if the correct number of restrictions are supported. Domyślnie program CheckRestrictions poprosił dostawcę za pomocą wywołania setograniczenia , które ograniczenia obsługuje dla danego zestawu wierszy.By default, CheckRestrictions will ask the provider, through the SetRestrictions call, which restrictions it supports on a given rowset. Następnie porównuje ograniczenia od konsumenta z tymi obsługiwanymi przez dostawcę i powiedzie się lub zakończy się niepowodzeniem.It then compares the restrictions from the consumer against those supported by the provider and either succeeds or fails.

Aby uzyskać więcej informacji na temat zestawów wierszy schematu, zobacz IDBSchemaRowset w dokumentacji programisty OLE DB w Windows SDK.For more information on schema rowsets, see IDBSchemaRowset in the OLE DB Programmer's Reference in the Windows SDK.

IDBSchemaRowsetImpl:: CreateSchemaRowsetIDBSchemaRowsetImpl::CreateSchemaRowset

Implementuje funkcję twórcy obiektów COM dla obiektu określonego przez parametr szablonu.Implements a COM object creator function for the object specified by the template parameter.

SkładniaSyntax

template template <class SchemaRowsetClass>
HRESULT CreateSchemaRowset(IUnknown *pUnkOuter,
   ULONG cRestrictions,
   const VARIANT rgRestrictions[],
   REFIID riid,
   ULONG cPropertySets,
   DBPROPSET rgPropertySets[],
   IUnknown** ppRowset,
   SchemaRowsetClass*& pSchemaRowset);

ParametryParameters

pUnkOuterpUnkOuter
podczas Zewnętrzny element IUnknown podczas agregowania, w przeciwnym razie wartość null.[in] An outer IUnknown when aggregating, otherwise NULL.

cRestrictionscRestrictions
podczas Liczba ograniczeń zastosowanych do zestawu wierszy schematu.[in] The count of restrictions applied to the schema rowset.

rgRestrictionsrgRestrictions
podczas Tablica cRestrictions wariantów, która ma zostać zastosowana do zestawu wierszy.[in] An array of cRestrictionsVARIANT s to be applied to the rowset.

riidriid
podczas Interfejs do QueryInterface dla danych wyjściowych IUnknown .[in] The interface to QueryInterface for on the output IUnknown.

cPropertySetscPropertySets
podczas Liczba zestawów właściwości do ustawienia.[in] The number of property sets to set.

rgPropertySetsrgPropertySets
podczas Tablica struktur DBPROPSET , które określają ustawiane właściwości.[in] An array of DBPROPSET structures that specify the properties being set.

ppRowsetppRowset
określoną Wychodzące IUnknown żądanie riid.[out] The outgoing IUnknown requested by riid. IUnknownJest to interfejs obiektu zestawu wierszy schematu.This IUnknown is an interface on the schema rowset object.

pSchemaRowsetpSchemaRowset
określoną Wskaźnik do wystąpienia klasy zestawu wierszy schematu.[out] A pointer to an instance of the schema rowset class. Zazwyczaj ten parametr nie jest używany, ale może być używany, jeśli trzeba wykonać więcej pracy na zestawie wierszy schematu przed przekazaniem go do obiektu COM.Typically, this parameter is not used, but it can be used if you must perform more work on the schema rowset before handing it out to a COM object. Okres istnienia pSchemaRowset jest związany z ppRowset.The lifetime of pSchemaRowset is bound by ppRowset.

Wartość zwracanaReturn Value

Standardowa wartość HRESULT.A standard HRESULT value.

UwagiRemarks

Ta funkcja implementuje twórcę ogólnego dla wszystkich typów zestawów wierszy schematu.This function implements a generic creator for all types of schema rowsets. Zazwyczaj użytkownik nie wywołuje tej funkcji.Typically, the user does not call this function. Jest on wywoływany przez implementację mapy schematu.It is called by the implementation of the schema map.

IDBSchemaRowsetImpl:: setograniczeniaIDBSchemaRowsetImpl::SetRestrictions

Określa, które ograniczenia są obsługiwane dla określonego zestawu wierszy schematu.Specifies which restrictions you support on a particular schema rowset.

SkładniaSyntax

void SetRestrictions(ULONG cRestrictions,
   GUID* /* rguidSchema */,
   ULONG* rgRestrictions);

ParametryParameters

cRestrictionscRestrictions
podczas Liczba ograniczeń w tablicy rgRestrictions i liczba identyfikatorów GUID w tablicy rguidSchema .[in] The number of restrictions in the rgRestrictions array and the number of GUIDs in the rguidSchema array.

rguidSchemarguidSchema
podczas Tablica identyfikatorów GUID zestawów wierszy schematu, dla których mają zostać pobrane ograniczenia.[in] An array of the GUIDs of the schema rowsets for which to fetch restrictions. Każdy element tablicy zawiera identyfikator GUID jednego zestawu wierszy schematu (na przykład DBSCHEMA_TABLES ).Each array element contains the GUID of one schema rowset (for example, DBSCHEMA_TABLES).

rgRestrictionsrgRestrictions
podczas Tablica długości cRestrictions wartości ograniczeń, które mają zostać ustawione.[in] An array of length cRestrictions of restriction values to be set. Każdy element odnosi się do ograniczeń zestawu wierszy schematu identyfikowanych przez identyfikator GUID.Each element corresponds to the restrictions on the schema rowset identified by the GUID. Jeśli dany zestaw wierszy schematu nie jest obsługiwany przez dostawcę, element jest ustawiany na zero.If a schema rowset is not supported by the provider, the element is set to zero. W przeciwnym razie wartość ULONG zawiera maskę bitową, która reprezentuje ograniczenia obsługiwane przez ten zestaw wierszy schematu.Otherwise, the ULONG value contains a bit mask that represents the restrictions supported on that schema rowset. Aby uzyskać więcej informacji o ograniczeniach odnoszących się do określonego zestawu wierszy schematu, zapoznaj się z tabelą identyfikatorów GUID zestawu wierszy schematu w IDBSchemaRowset w odniesieniu do programisty OLE DB w Windows SDK.For more information on which restrictions correspond to a particular schema rowset, consult the table of schema rowset GUIDs in IDBSchemaRowset in the OLE DB Programmer's Reference in the Windows SDK.

UwagiRemarks

IDBSchemaRowsetObiekt wywołuje, SetRestrictions Aby określić, które ograniczenia są obsługiwane w konkretnym zestawie wierszy schematu (wywoływane przez GetSchemas za pomocą wskaźnika ze wskaźnikiem).The IDBSchemaRowset object calls SetRestrictions to determine which restrictions you support on a particular schema rowset (it is called by GetSchemas through an upcasted pointer). Ograniczenia umożliwiają konsumentom pobieranie tylko pasujących wierszy (na przykład Znajdź wszystkie kolumny w tabeli "MyTable").Restrictions allow consumers to fetch only matching rows (for example, find all the columns in the table "MyTable"). Ograniczenia są opcjonalne i w przypadku, gdy żaden z nich nie jest obsługiwany (wartość domyślna), wszystkie dane są zawsze zwracane.Restrictions are optional, and in the case in which none are supported (the default), all data is always returned.

Domyślna implementacja tej metody ustawia elementy tablicy rgRestrictions na 0.The default implementation of this method sets the rgRestrictions array elements to 0. Zastąp wartość domyślną w klasie sesji, aby ustawić ograniczenia inne niż domyślne.Override the default in your session class to set restrictions other than the default.

Aby uzyskać informacje na temat implementowania obsługi zestawu wierszy schematu, zobacz Obsługa zestawów wierszy schematu.For information on implementing schema rowset support, see Supporting Schema Rowsets.

Aby zapoznać się z przykładem dostawcy, który obsługuje zestawy wierszy schematu, zobacz przykład UpdatePV .For an example of an provider that supports schema rowsets, see the UpdatePV sample.

Aby uzyskać więcej informacji na temat zestawów wierszy schematu, zobacz IDBSchemaRowset w dokumentacji programisty OLE DB w Windows SDK.For more information on schema rowsets, see IDBSchemaRowset in the OLE DB Programmer's Reference in the Windows SDK.

IDBSchemaRowsetImpl:: GetRowsetIDBSchemaRowsetImpl::GetRowset

Zwraca zestaw wierszy schematu.Returns a schema rowset.

SkładniaSyntax

STDMETHOD (GetRowset)(IUnknown *pUnkOuter,
   REFGUID rguidSchema,
   ULONG cRestrictions,
   const VARIANT rgRestrictions[],
   REFIID riid,
   ULONG cPropertySets,
   DBPROPSET rgPropertySets[],
   IUnknown **ppRowset);

ParametryParameters

pUnkOuterpUnkOuter
podczas Element zewnętrzny IUnknown podczas agregowania; w przeciwnym razie wartość null.[in] An outer IUnknown when aggregating; otherwise NULL.

rguidSchemarguidSchema
podczas Odwołanie do żądanego identyfikatora GUID zestawu wierszy schematu (na przykład DBSCHEMA_TABLES ).[in] A reference to the requested schema rowset GUID (for example, DBSCHEMA_TABLES).

cRestrictionscRestrictions
podczas Liczba ograniczeń, które mają zostać zastosowane do zestawu wierszy.[in] A count of restrictions to be applied to the rowset.

rgRestrictionsrgRestrictions
podczas Tablica cRestrictions wariantów, która reprezentuje ograniczenia.[in] An array of cRestrictionsVARIANT s that represent the restrictions.

riidriid
podczas Identyfikator IID żądania nowo utworzonego zestawu wierszy schematu.[in] The IID to request of the newly created schema rowset.

cPropertySetscPropertySets
podczas Liczba zestawów właściwości do ustawienia.[in] The number of property sets to set.

rgPropertySetsrgPropertySets
[we/out] Tablica struktur DBPROPSET do ustawienia dla nowo utworzonego zestawu wierszy schematu.[in/out] An array of DBPROPSET structures to set on the newly created schema rowset.

ppRowsetppRowset
określoną Wskaźnik do żądanego interfejsu dla nowo utworzonego zestawu wierszy schematu.[out] A pointer to the requested interface on the newly created schema rowset.

UwagiRemarks

Ta metoda wymaga, aby użytkownik miał mapę schematu w klasie sesji.This method requires the user to have a schema map in the session class. Przy użyciu informacji o mapie schematu program GetRowset tworzy dany obiekt zestawu wierszy, jeśli parametr rguidSchema jest równy jednemu z identyfikatorów GUID wpisów mapy.Using the schema map information, GetRowset creates a given rowset object if the rguidSchema parameter is equal to one of the map entries GUIDs. Aby uzyskać opis wpisu mapy, zobacz SCHEMA_ENTRY .See SCHEMA_ENTRY for a description of the map entry.

Zobacz IDBSchemaRowset:: GetRowset w Windows SDK.See IDBSchemaRowset::GetRowset in the Windows SDK.

IDBSchemaRowsetImpl:: GetSchemasIDBSchemaRowsetImpl::GetSchemas

Zwraca listę zestawów wierszy schematu dostępnych przez IDBSchemaRowsetImpl:: GetRowset.Returns a list of schema rowsets accessible by IDBSchemaRowsetImpl::GetRowset.

SkładniaSyntax

STDMETHOD (GetSchema s )(ULONG * pcSchemas,
   GUID ** prgSchemas,
   ULONG** prgRest);

ParametryParameters

pcSchemaspcSchemas
określoną Wskaźnik do elementu ULONG , który jest wypełniony liczbą schematów.[out] A pointer to a ULONG that is filled with the number of schemas.

prgSchemasprgSchemas
określoną Wskaźnik do tablicy identyfikatorów GUID, który jest wypełniony wskaźnikiem do tablicy identyfikatorów GUID zestawu wierszy schematu.[out] A pointer to an array of GUIDs that is filled with a pointer to an array of schema rowset GUIDs.

prgRestprgRest
określoną Wskaźnik do tablicy ULONG s, który ma zostać wypełniony tablicą ograniczeń.[out] A pointer to an array of ULONG s that is to be filled with the restriction array.

UwagiRemarks

Ta metoda zwraca tablicę wszystkich zestawów wierszy schematu obsługiwanych przez dostawcę.This method returns an array of all schema rowsets supported by the provider. Zobacz IDBSchemaRowset:: GetSchemas w Windows SDK.See IDBSchemaRowset::GetSchemas in the Windows SDK.

Implementacja tej funkcji wymaga, aby użytkownik miał mapę schematu w klasie sesji.The implementation of this function requires the user to have a schema map in the session class. Korzystając z informacji o mapie schematu, reaguje ona na tablicę identyfikatorów GUID dla schematów na mapie.Using the schema map information, it then responds with the array of GUIDs for the schemas in the map. Reprezentuje schematy obsługiwane przez dostawcę.This represents the schemas supported by the provider.

Zobacz teżSee also

Klasy zestawów wierszy schematu i klasy typedefSchema Rowset Classes and Typedef Classes
Obsługa zestawów wierszy schematuSupporting Schema Rowsets
SCHEMA_ENTRYSCHEMA_ENTRY
UpdatePVUpdatePV