Condividi tramite


Metodo OpenSchema

Ottiene le informazioni sullo schema del database dal provider.

Sintassi

  
Set recordset = connection.OpenSchema(QueryType, Criteria, SchemaID)  

Valore restituito

Restituisce un oggetto Recordset contenente informazioni sullo schema. L'oggetto Recordset verrà aperto come cursore statico di sola lettura. QueryType determina le colonne che verranno visualizzate in Recordset.

Parametri

QueryType
Qualsiasi valore di SchemaEnum che rappresenta il tipo di query dello schema da eseguire.

Criteri
facoltativo. Matrice di vincoli di query per ogni opzione QueryType, come indicato in SchemaEnum.

SchemaID
GUID per una query dello schema del provider non definita dalla specifica OLE DB. Questo parametro è obbligatorio se QueryType è impostato su adSchemaProviderSpecific; in caso contrario, non viene usato.

Osservazioni

Il metodo OpenSchema restituisce informazioni auto-descrittive sull'origine dati, ad esempio le tabelle presenti nell'origine dati, le colonne nelle tabelle e i tipi di dati supportati.

L'argomento QueryType è un GUID che indica le colonne (schemi) restituite. La specifica OLE DB include un elenco completo di schemi.

L'argomento Criteria consente di limitare i risultati di una query dello schema. Criteria specifica una matrice di valori che devono essere presenti in un subset corrispondente di colonne, denominate colonne di vincolo, nell'oggetto Recordset risultante.

La costante adSchemaProviderSpecific viene usata per l'argomento QueryType se il provider definisce query dello schema non standard personalizzate oltre quelle elencate in precedenza. Quando viene usata questa costante, l'argomento SchemaID è obbligatorio per passare il GUID della query dello schema da eseguire. Se QueryType è impostato su adSchemaProviderSpecific, ma SchemaID non viene specificato, verrà generato un errore.

I provider non devono supportare tutte le query dello schema standard OLE DB. In particolare, la specifica OLE DB richiede solo adSchemaTables, adSchemaColumns e adSchemaProviderTypes. Tuttavia, il provider non deve supportare i vincoli di Criteria elencati in precedenza per tali query dello schema.

Nota

Utilizzo di Remote Data Service Il metodo OpenSchema non è disponibile in un oggetto Connection lato client.

Nota

In Visual Basic le colonne con un intero senza segno a quattro byte (DBTYPE UI4) nell'oggetto Recordset restituito dal metodo OpenSchema sull'oggetto Connection non possono essere confrontate con altre variabili. Per altre informazioni sui tipi di dati OLE DB, vedere Tipi di dati in OLE DB (OLE DB) e Appendice A: Tipi di dati nelle Informazioni di riferimento per programmatori Microsoft OLE DB.

Nota

Utenti di Visual C/C++ Quando non si usano cursori lato client, il recupero di "ORDINAL_POSITION" di uno schema di colonna in ADO restituisce una variante di tipo VT_R8 in MDAC 2.7, MDAC 2.8 e Windows Data Access Components (Windows DAC) 6.0, mentre il tipo usato in MDAC 2.6 era VT_I4. I programmi scritti per MDAC 2.6 che cercano solo una variante restituita di tipo VT_I4 ottengono uno zero per ogni ordinale se eseguiti in MDAC 2.7, MDAC 2.8 e Windows DAC 6.0 senza modifica. Questa modifica è stata apportata perché il tipo di dati restituito da OLE DB è DBTYPE_UI4 e nel tipo di VT_I4 con segno non è disponibile spazio sufficiente per contenere tutti i valori possibili senza eventuali troncamenti, di conseguenza potrebbero verificarsi perdite di dati.

Si applica a

Oggetto Connection (ADO)

Vedere anche

Esempio del metodo OpenSchema (VB)
Esempio del metodo OpenSchema (VC++)
Metodo Open (Connection - ADO)
Metodo Open (Record - ADO)
Metodo Open (Recordset - ADO)
Metodo Open (Stream - ADO)
Appendice A: Provider