Condividi tramite


IDBSchemaRowsetImpl (classe)

Fornisce l'implementazione per i set di righe dello schema.

Sintassi

template <class SessionClass>
class ATL_NO_VTABLE IDBSchemaRowsetImpl : public IDBSchemaRowset

Parametri

SessionClass
La classe da cui IDBSchemaRowsetImpl viene ereditata. In genere, questa classe corrisponde alla classe sessione dell'utente.

Requisiti

Intestazione: atldb.h

Membri

Metodi

Nome Descrizione
CheckRestrictions Controlla la validità delle restrizioni rispetto a un set di righe dello schema.
CreateSchemaRowset Implementa una funzione di creazione di oggetti COM per l'oggetto specificato dal parametro di modello.
SetRestrictions Specifica le restrizioni supportate su uno specifico set di righe dello schema.

Metodi di interfaccia

Nome Descrizione
GetRowset Restituisce un set di righe dello schema.
GetSchemas Restituisce un elenco di set di righe dello schema accessibili da IDBSchemaRowsetImpl::GetRowset.

Osservazioni:

Questa classe implementa l'interfaccia IDBSchemaRowset e la funzione di creazione di modelli CreateSchemaRowset.

OLE DB usa set di righe dello schema per restituire dati relativi ai dati in un provider. Tali dati vengono spesso chiamati "metadati". Per impostazione predefinita, un provider deve sempre supportare DBSCHEMA_TABLES, DBSCHEMA_COLUMNSe DBSCHEMA_PROVIDER_TYPES, come descritto in IDBSchemaRowset nella guida di riferimento per programmatori OLE DB. I set di righe vengono definiti in una mappa di schema. Per informazioni sulle voci della mappa di schema, vedere SCHEMA_ENTRY.

La creazione guidata provider OLEDB, all'interno della creazione guidata oggetto ATL, genera automaticamente il codice per i set di righe dello schema nel progetto. Per impostazione predefinita, la procedura guidata supporta i set di righe dello schema obbligatori indicati in precedenza. Quando si crea un consumer tramite la Creazione guidata oggetti ATL, la procedura guidata usa set di righe dello schema per associare i dati corretti a un provider. Se non si implementano i set di righe dello schema per fornire i metadati corretti, la procedura guidata non li assocerà.

Per informazioni su come supportare i set di righe dello schema nel provider, vedere Supporto dei set di righe dello schema.

Per altre informazioni sui set di dati dello schema, vedere Set di righe dello schema in OLE DB Programmer's Reference(Guida di riferimento per programmatori OLE DB).

IDBSchemaRowsetImpl::CheckRestrictions

Controlla la validità delle restrizioni rispetto a un set di righe dello schema.

Sintassi

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

Parametri

rguidSchema
[in] Un riferimento al GUID del set di righe dello schema richiesto (ad esempio DBSCHEMA_TABLES).

cRestrictions
[in] Il numero di restrizioni che il consumer ha passato per il set di righe dello schema.

rgRestrictions
[in] Una matrice di lunghezza cRestrictions di valori di restrizione da impostare. Per altre informazioni, vedere la descrizione del parametro rgRestrictions in SetRestrictions.

Osservazioni:

Usa CheckRestrictions per controlla la validità delle restrizioni per un set di righe dello schema. Controlla le restrizioni per DBSCHEMA_TABLESi set di righe dello schema , DBSCHEMA_COLUMNSe DBSCHEMA_PROVIDER_TYPES . Chiamalo per determinare se la chiamata di un consumer a IDBSchemaRowset::GetRowset è corretta. Se si desidera supportare set di righe dello schema diversi da quelli elencati sopra, creare una funzione personalizzata per eseguire questa operazione.

CheckRestrictions determina se il consumer chiama GetRowset con la restrizione corretta e il tipo di restrizione corretto (ad esempio, un VT_BSTR per una stringa) supportato dal provider. Determina inoltre se è supportato il numero corretto di restrizioni. Per impostazione predefinita CheckRestrictions chiederà al provider, tramite la chiamata di SetRestrictions , le restrizioni che supporta su un determinato set di righe. Quindi confronterà le restrizioni del consumer con quelle supportate dal provider dando un esito positivo o negativo.

Per altre informazioni sui set di righe dello schema, vedere IDBSchemaRowset nella Guida di riferimento per programmatori OLE DB in Windows SDK.

IDBSchemaRowsetImpl::CreateSchemaRowset

Implementa una funzione di creazione di oggetti COM per l'oggetto specificato dal parametro di modello.

Sintassi

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

Parametri

pUnkOuter
[in] Oggetto IUnknown esterno durante l'aggregazione, altrimenti NULL.

cRestrictions
[in] Il conteggio delle limitazioni applicate al set di righe dello schema.

rgRestrictions
[in] Una matrice di cRestrictionsVARIANTda applicare al set di righe.

riid
[in] Interfaccia di QueryInterface per nell'output IUnknown.

cPropertySets
[in] Il numero di insiemi di proprietà da impostare.

rgPropertySets
[in] Una matrice di strutture DBPROPSET che specificano le proprietà da impostare.

ppRowset
[out] Oggetto in uscita IUnknown richiesto da riid. Si tratta IUnknown di un'interfaccia nell'oggetto set di righe dello schema.

pSchemaRowset
[out] Un puntatore a un'istanza della classe del set di righe dello schema. Questo parametro in genere non viene usato ma può essere aggiunto se è necessario eseguire altro lavoro sul set di righe dello schema passandolo a un oggetto COM. La durata di pSchemaRowset è associata da ppRowset.

Valore restituito

Valore HRESULT standard.

Osservazioni:

Questa funzione implementa un creatore generico per tutti i tipi di set di righe dello schema. Di solito l'utente non chiama questa funzione. Viene chiamata dall'implementazione della mappa dello schema.

IDBSchemaRowsetImpl::SetRestrictions

Specifica le restrizioni supportate su uno specifico set di righe dello schema.

Sintassi

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

Parametri

cRestrictions
[in] Numero di restrizioni nella matrice rgRestrictions e numero di GUID nella matrice rguidSchema .

rguidSchema
[in] Matrice di GUID del set di righe dello schema per il quale recuperare le restrizioni. Ogni elemento della matrice contiene il GUID di un set di righe di uno schema (ad esempio, DBSCHEMA_TABLES).

rgRestrictions
[in] Una matrice di lunghezza cRestrictions di valori di restrizione da impostare. Ogni elemento corrisponde alle restrizioni nel set di righe dello schema identificato dal GUID. Se il provider non supporta il set di righe dello schema, l'elemento è impostato su zero. In caso contrario, il valore ULONG contiene una maschera di bit che rappresenta le restrizioni supportate in tale set di righe dello schema. Per altre informazioni sulle restrizioni corrispondenti a un determinato set di righe dello schema, vedere la tabella dei GUID del set di righe dello schema in IDBSchemaRowset nella guida di riferimento per programmatori OLE DB in Windows SDK.

Osservazioni:

L'oggetto IDBSchemaRowset chiama SetRestrictions per determinare le restrizioni supportate in un particolare set di righe dello schema (viene chiamato da GetSchemas tramite un puntatore upcast). Le restrizioni consentono agli utenti di recuperare solo le righe corrispondenti (ad esempio, trovare tutte le colonne nella tabella "MyTable"). Sono facoltative e, nel caso in cui nessuna sia supportata (impostazione predefinita), vengono restituiti sempre tutti i dati.

L'implementazione predefinita di questo metodo imposta gli elementi della matrice rgRestrictions su 0. Per impostare restrizioni diverse da quelle predefinite nella classe di sessione eseguire l'override di tali impostazioni.

Per informazioni su come implementare il supporto per i set di righe dello schema, vedere Supporto dei set di righe dello schema.

Per un esempio di provider che supporta i set di righe dello schema, vedere l'esempio UpdatePV .

Per altre informazioni sui set di righe dello schema, vedere IDBSchemaRowset nella Guida di riferimento per programmatori OLE DB in Windows SDK.

IDBSchemaRowsetImpl::GetRowset

Restituisce un set di righe dello schema.

Sintassi

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

Parametri

pUnkOuter
[in] Oggetto esterno IUnknown durante l'aggregazione; in caso contrario, NULL.

rguidSchema
[in] Un riferimento al GUID del set di righe dello schema richiesto (ad esempio DBSCHEMA_TABLES).

cRestrictions
[in] Conteggio delle limitazioni da applicare al set di righe.

rgRestrictions
[in] Matrice di cRestrictionsVARIANTche rappresenta le restrizioni.

riid
[in] IID per richiedere il set di righe dello schema appena creato.

cPropertySets
[in] Il numero di insiemi di proprietà da impostare.

rgPropertySets
[in/out] Matrice delle strutture DBPROPSET per impostare il set di righe dello schema appena creato.

ppRowset
[out] Puntatore all'interfaccia richiesta nel set di righe dello schema appena creato.

Osservazioni:

Il metodo richiede che l'utente disponga di una mappa di schema nella classe di sessione. Usando le informazioni sulla mappa dello schema, GetRowset crea un determinato oggetto set di righe se il parametro rguidSchema è uguale a uno dei GUID delle voci della mappa. Per una descrizione della voce di mapping, vedere SCHEMA_ENTRY .

Vedere IDBSchemaRowset::GetRowset in Windows SDK.

IDBSchemaRowsetImpl::GetSchemas

Restituisce un elenco di set di righe dello schema accessibili da IDBSchemaRowsetImpl::GetRowset.

Sintassi

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

Parametri

pcSchemas
[out] Un puntatore a un ULONG compilato con il numero di schemi.

prgSchemas
[out] Un puntatore a una matrice di GUID compilata con un puntatore a una matrice di GUID del set di righe dello schema.

prgRest
[out] Un puntatore a una matrice di ULONGda compilare con la matrice di restrizioni.

Osservazioni:

Questo metodo restituisce una matrice di tutti i rowset dello schema supportati dal provider. Vedere IDBSchemaRowset::GetSchemas in Windows SDK.

L'implementazione di questa funzione richiede che l'utente di disporre di una mappa di schema nella classe di sessione. Usando le informazioni della mappa di schema, la funzione risponde con la matrice dei GUID per gli schemi nella mappa. Questa operazione rappresenta gli schemi supportati dal provider.

Vedi anche

Classi Rowset dello schema e classi Typedef
Supporto dei set di righe dello schema
SCHEMA_ENTRY
UpdatePV