Condividi tramite


Raccolte di schemi comuni

Le raccolte di schemi comuni sono le raccolte di schemi implementate da ognuno dei provider gestiti di .NET Framework. È possibile eseguire una query su un provider gestito di .NET Framework per determinare l'elenco delle raccolte di schemi supportate chiamando il GetSchema metodo senza argomenti o con il nome della raccolta di schemi "MetaDataCollections". In questo modo verrà restituito un oggetto DataTable con un elenco delle raccolte di schemi supportati, il numero delle restrizioni supportate da ciascuna raccolta e il numero di parti identificatore usate. Queste raccolte descrivono tutte le colonne richieste. I provider sono liberi di aggiungere altre colonne, se lo desiderano. Ad esempio, SqlClient e OracleClient aggiungere ParameterName alla raccolta di restrizioni.

Se un provider non è in grado di determinare il valore di una colonna obbligatoria, restituirà Null.

Per altre informazioni sull'uso dei GetSchema metodi, vedere GetSchema e Raccolte di schemi.

MetaDataCollections

Questa raccolta di schemi espone informazioni su tutte le raccolte di schemi supportate dal provider gestito di .NET Framework attualmente utilizzato per connettersi al database.

ColumnName Tipo di dati Descrizione
NomeDellaCollezione corda Nome della raccolta da passare al metodo GetSchema per restituire la raccolta.
NumeroDiRestrizioni Int Numero di restrizioni che possono essere specificate per la raccolta.
NumeroDiPartiIdentificatore Int Numero di parti nel nome dell'oggetto di database/identificatore composito. Ad esempio, in SQL Server, si tratta di 3 per le tabelle e 4 per le colonne. In Oracle sarebbe 2 per le tabelle e 3 per le colonne.

Informazioni sulla sorgente dati

Questa raccolta di schemi espone informazioni sull'origine dati a cui è attualmente connesso il provider gestito di .NET Framework.

ColumnName Tipo di dati Descrizione
ModelloSeparatoreIdentificatoreComposto corda Espressione regolare che corrisponde ai separatori compositi in un identificatore composito. Ad esempio, "\". (per SQL Server) o "@|\". (per Oracle).

Un identificatore composito è in genere quello usato per un nome di oggetto di database, ad esempio pubs.dbo.authors o pubs@dbo.authors.

Per SQL Server, usare l'espressione regolare "\.". Per OracleClient, usare "@|\.".

Per ODBC utilizzare il Catalog_name_separator.

Per OLE DB usare DBLITERAL_CATALOG_SEPARATOR o DBLITERAL_SCHEMA_SEPARATOR.
NomeProdottoOrigineDati corda Nome del prodotto a cui accede il provider, ad esempio "Oracle" o "SQLServer".
VersioneDelProdottoDataSource corda Indica la versione del prodotto a cui accede il provider, nel formato nativo delle origini dati e non nel formato Microsoft.

In alcuni casi DataSourceProductVersion e DataSourceProductVersionNormalized saranno lo stesso valore. Nel caso di OLE DB e ODBC, questi saranno sempre gli stessi poiché vengono mappati alla stessa chiamata di funzione nell'API nativa sottostante.
DataSourceProductVersionNormalized corda Una versione normalizzata per l'origine dati, in modo che possa essere confrontata con String.Compare(). Il formato è coerente per tutte le versioni del provider per evitare che la versione 10 venga ordinata tra la versione 1 e la versione 2.

Ad esempio, il provider Oracle usa un formato "nn.nn.nn.nn.nn.nn" per la versione normalizzata, che fa sì che un'origine dati Oracle 8i restituisca "08.01.07.04.01". SQL Server utilizza il tipico formato Microsoft "nn.nn.nnnn".

In alcuni casi, DataSourceProductVersion e DataSourceProductVersionNormalized saranno lo stesso valore. Nel caso di OLE DB e ODBC, saranno sempre identici poiché sono mappati alla stessa chiamata di funzione nell'API nativa sottostante.
GroupByBehavior GroupByBehavior Specifica la relazione tra le colonne in una clausola GROUP BY e le colonne non aggregate nell'elenco di selezione.
IdentifierPattern corda Espressione regolare che corrisponde a un identificatore e ha un valore di corrispondenza dell'identificatore. Ad esempio "[A-Za-z0-9_#$]".
CasoIdentificatore IdentifierCase Indica se gli identificatori non delimitati vengono trattati come sensibili al maiuscolo e minuscolo o meno.
OrderByColumnsInSelect Bool Specifica se le colonne in una clausola ORDER BY devono trovarsi nell'elenco di selezione. Un valore true indica che devono trovarsi nell'elenco di selezione, un valore false indica che non è necessario trovarsi nell'elenco di selezione.
Formato Indicatore di Parametro corda Stringa di formato che rappresenta come formattare un parametro.

Se i parametri denominati sono supportati dall'origine dati, il primo segnaposto in questa stringa deve essere dove deve essere formattato il nome del parametro.

Ad esempio, se l'origine dati prevede che i parametri siano denominati e preceduti da un prefisso ":", si tratta di ":{0}". Quando si formatta con un nome di parametro "p1", la stringa risultante è ":p 1".

Se l'origine dati prevede che i parametri siano preceduti da '@', ma i nomi li includono già, si tratta di '{0}', e il risultato della formattazione di un parametro denominato "@p1" sarebbe semplicemente "@p1".

Per le origini dati che non prevedono parametri denominati e prevedono l'uso del carattere '?', la stringa di formato può essere specificata semplicemente '?', che ignorerebbe il nome del parametro. Per OLE DB viene restituito '?'.
ParameterMarkerPattern corda Espressione regolare che corrisponde a un marcatore di parametro. Avrà un valore di corrispondenza del nome del parametro, se presente.

Ad esempio, se i parametri denominati sono supportati con un carattere di lead-in '@' che verrà incluso nel nome del parametro, si tratta di: "(@[A-Za-z0-9_$#]*)".

Tuttavia, se i parametri denominati sono supportati con un carattere ":" come carattere iniziale e non fa parte del nome del parametro, si tratta di: ":([A-Za-z0-9_$#]*)".

Naturalmente, se l'origine dati non supporta parametri denominati, si tratta semplicemente di "?".
LunghezzaMassimaNomeParametro Int Lunghezza massima di un nome di parametro in caratteri. Visual Studio prevede che se i nomi dei parametri sono supportati, il valore minimo per la lunghezza massima è di 30 caratteri.

Se l'origine dati non supporta parametri denominati, questa proprietà restituisce zero.
ParameterNamePattern corda Espressione regolare che corrisponde ai nomi di parametro validi. Origini dati diverse hanno regole diverse relative ai caratteri che possono essere usati per i nomi dei parametri.

Visual Studio prevede che se i nomi dei parametri sono supportati, i caratteri "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" sono il set minimo supportato di caratteri validi per i nomi dei parametri.
QuotedIdentifierPattern corda Espressione regolare che corrisponde a un identificatore tra virgolette e ha come valore di corrispondenza l'identificatore stesso, senza virgolette. Ad esempio, se l'origine dati usa virgolette doppie per identificare gli identificatori tra virgolette, si tratta di: "([^\"]|\"\")*)".
CasoIdentificatoreConVirgolette IdentifierCase Indica se gli identificatori tra virgolette vengono trattati come sensibili alle maiuscole e minuscole.
ModelloSeparatoreDiDichiarazione corda Espressione regolare che corrisponde al separatore di dichiarazioni.
StringLiteralPattern corda Un'espressione regolare che corrisponde a una stringa letterale e ha un valore di corrispondenza della stringa letterale stessa. Ad esempio, se l'origine dati usa virgolette singole per identificare le stringhe, si tratta di: "('([^']|')*')"'
Operatori di Join Supportati SupportedJoinOperators Specifica i tipi di istruzioni join SQL supportate dall'origine dati.

Tipi

Questa raccolta di schemi espone informazioni sui tipi di dati supportati dal database a cui è attualmente connesso il provider gestito .NET Framework.

ColumnName Tipo di dati Descrizione
Nome del Tipo corda Nome del tipo di dati specifico del provider.
ProviderDbType Int Valore del tipo specifico del provider che deve essere usato quando si specifica il tipo di un parametro. Ad esempio, SqlDbType.Money o OracleType.Blob.
DimensioneColonna lungo La lunghezza di una colonna o di un parametro non numerico fa riferimento al valore massimo o alla lunghezza definita per questo tipo dal provider.

Per i dati di tipo carattere, si tratta della lunghezza massima o definita in unità, definita dall'origine dati. Oracle ha il concetto di specificare una lunghezza e quindi specificare le dimensioni di archiviazione effettive per alcuni tipi di dati di tipo carattere. In questo modo viene definita solo la lunghezza in unità per Oracle.

Per i tipi di dati di data e ora, si tratta della lunghezza della rappresentazione di stringa (presupponendo la precisione massima consentita del componente secondi frazionari).

Se il tipo di dati è numerico, si tratta del limite superiore sulla precisione massima del tipo di dati.
CreaFormato corda Stringa di formato che rappresenta come aggiungere questa colonna a un'istruzione di definizione dei dati, ad esempio CREATE TABLE. Ogni elemento nella matrice CreateParameter deve essere rappresentato da un "marcatore di parametro" nella stringa di formato.

Ad esempio, il tipo di dati SQL DECIMAL richiede una precisione e una scala. In questo caso, la stringa di formato sarà "DECIMAL({0},{1})".
CreateParameters corda Parametri di creazione che devono essere specificati durante la creazione di una colonna di questo tipo di dati. Ogni parametro di creazione è elencato nella stringa, separato da una virgola nell'ordine in cui devono essere forniti.

Ad esempio, il tipo di dati SQL DECIMAL richiede una precisione e una scala. In questo caso, i parametri di creazione devono contenere la stringa "precisione, scala".

In un comando di testo per creare una colonna DECIMAL con precisione 10 e una scala pari a 2, il valore della colonna CreateFormat potrebbe essere DECIMAL({0},{1})" e la specifica completa del tipo sarà DECIMAL(10,2).
Tipo di dati corda Nome del tipo di dati del .NET Framework.
ÈAutoIncrementabile Bool true: i valori di questo tipo di dati possono essere incrementati automaticamente.

false: i valori di questo tipo di dati potrebbero non essere incrementati automaticamente.

Si noti che ciò indica semplicemente se una colonna di questo tipo di dati può essere incrementata automaticamente, non che tutte le colonne di questo tipo vengano incrementate automaticamente.
IsBestMatch Bool true: il tipo di dati è la corrispondenza migliore tra tutti i tipi di dati nell'archivio dati e il tipo di dati .NET Framework indicato dal valore nella colonna DataType.

false: il tipo di dati non è la corrispondenza migliore.

Per ogni set di righe in cui il valore della colonna DataType è lo stesso, la colonna IsBestMatch è impostata su true in una sola riga.
È CaseSensitive Bool true: il tipo di dati è un tipo di carattere e fa distinzione tra maiuscole e minuscole.

false: il tipo di dati non è un tipo di carattere o non fa distinzione tra maiuscole e minuscole.
IsFixedLength Bool true: le colonne di questo tipo di dati create dal linguaggio DDL (Data Definition Language) saranno a lunghezza fissa.

false: le colonne di questo tipo di dati create dal DDL saranno di lunghezza variabile.

DBNull.Value: non è noto se il provider eseguirà il mapping di questo campo con una colonna a lunghezza fissa o a lunghezza variabile.
IsFixedPrecisionScale Bool true: il tipo di dati ha una precisione fissa e una scala.

false: il tipo di dati non ha una precisione fissa e una scala.
IsLong Bool true: il tipo di dati contiene dati molto lunghi; la definizione di dati molto lunghi è specifica del provider.

false: il tipo di dati non contiene dati molto lunghi.
ÈAnnullabile Bool true—Il tipo di dati è annullabile.

false: il tipo di dati non è nullable.

DBNull.Value: non è noto se il tipo di dati può contenere valori nulli.
IsSearchable Bool true: il tipo di dati può essere usato in una clausola WHERE con qualsiasi operatore ad eccezione del predicato LIKE.

false: il tipo di dati non può essere utilizzato in una clausola WHERE con qualsiasi operatore ad eccezione del predicato LIKE.
ÈRicercabileConLike Bool true: il tipo di dati può essere usato con il predicato LIKE

false: il tipo di dati non può essere utilizzato con il predicato LIKE.
IsUnsigned Bool true: il tipo di dati non è firmato.

false: il tipo di dati è firmato.

DBNull.Value: non applicabile al tipo di dati.
Scala Massima breve Se l'indicatore di tipo è un tipo numerico, si tratta del numero massimo di cifre consentite a destra del separatore decimale. In caso contrario, si tratta di DBNull.Value.
ScalaMinima breve Se l'indicatore di tipo è un tipo numerico, si tratta del numero minimo di cifre consentite a destra del separatore decimale. In caso contrario, si tratta di DBNull.Value.
TipoDiConcorrenza Bool true: il tipo di dati viene aggiornato dal database ogni volta che la riga viene modificata e il valore della colonna è diverso da tutti i valori precedenti

false: il tipo di dati viene aggiornato dal database ogni volta che la riga viene modificata

DBNull.Value: il database non supporta questo tipo di dati
SupportoLiteralità Bool true: il tipo di dati può essere espresso come valore letterale

false: il tipo di dati non può essere espresso come valore letterale
LiteralPrefix corda Prefisso applicato a un determinato valore letterale.
LiteralSuffix corda Suffisso applicato a un determinato valore letterale.
NativeDataType Stringa NativeDataType è una colonna specifica OLE DB per esporre il tipo OLE DB del tipo di dati .

Restrizioni

Questa raccolta di schemi espone informazioni sulle restrizioni supportate dal provider gestito di .NET Framework attualmente utilizzato per connettersi al database.

ColumnName Tipo di dati Descrizione
NomeDellaCollezione corda Nome della raccolta a cui si applicano queste restrizioni.
NomeRestrizione corda Nome della restrizione nella raccolta.
RestrizionePredefinita corda Ignorato.
NumeroRestrizione Int La posizione effettiva all'interno delle restrizioni delle collezioni in cui rientra questa particolare restrizione.

Parole Riservate

Questa raccolta di schemi espone informazioni sulle parole riservate dal database a cui è attualmente connesso il provider gestito di .NET Framework.

ColumnName Tipo di dati Descrizione
ParolaRiservata corda Parola riservata specifica del provider.

Vedere anche