Partager via


Collections de schémas communes (ADO.NET)

Les collections de schémas communes sont les collections de schémas implémentées par chacun des fournisseurs .NET Framework managés.Vous pouvez interroger un fournisseur .NET Framework managé afin d'établir la liste des collections de schémas prises en charge en appelant la méthode GetSchema sans argument ou avec le nom de collection de schémas « MetaDataCollections ».Cette opération retourne un DataTable avec une liste des collections de schémas prises en charge, le nombre de restrictions qu'elles prennent en charge et le nombre d'éléments d'identification qu'elles utilisent.Ces collections décrivent toutes les colonnes requises.Les fournisseurs sont libres d'ajouter des colonnes s'ils le souhaitent.Par exemple, SqlClient et OracleClient ajoutent ParameterName à la collection de restrictions.

Si un fournisseur est incapable de déterminer la valeur d'une colonne obligatoire, il retourne la valeur null.

Pour plus d'informations sur l'utilisation des méthodes GetSchema, voir GetSchema et collections de schémas (ADO.NET).

MetaDataCollections

Cette collection de schémas expose des informations sur toutes les collections de schémas prises en charge par le fournisseur .NET Framework managé actuellement utilisé pour se connecter à la base de données.

Nom de colonne

Type de données

Description

CollectionName

string

Nom de la collection à passer à la méthode GetSchema pour retourner la collection.

NumberOfRestriction

int

Nombre de restrictions qui peuvent être spécifiées pour la collection.

NumberOfIdentifierParts

int

Nombre de parties dans le nom d'objet identificateur/base de données composite.Par exemple, dans SQL Server, ce serait 3 pour les tables et 4 pour les colonnes.Dans Oracle, ce serait 2 pour les tables et 3 pour les colonnes.

DataSourceInformation

Cette collection de schémas expose des informations sur la source de données à laquelle le fournisseur .NET Framework managé est actuellement connecté.

Nom de colonne

Type de données

Description

CompositeIdentifierSeparatorPattern

string

Expression régulière pour mettre en correspondance les séparateurs composites dans un identificateur composite.Par exemple, « \. » (pour SQL Server) ou « @|\. » (pour Oracle).

Un identificateur composite est généralement ce qui est utilisé pour un nom d'objet de base de données, par exemple : pubs.dbo.authors ou pubs@dbo.authors.

Pour SQL Server, utilisez l'expression régulière « \. ».Pour OracleClient, utilisez « @|\. ».

Pour ODBC, utilisez Catalog_name_seperator.

Pour OLE DB, utilisez DBLITERAL_CATALOG_SEPARATOR ou DBLITERAL_SCHEMA_SEPARATOR.

DataSourceProductName

string

Nom du produit auquel accède le fournisseur, tel que « Oracle » ou « SQLServer ».

DataSourceProductVersion

string

Indique la version du produit auquel accède le fournisseur, dans le format natif des sources de données et non dans un format Microsoft.

Dans certains cas, DataSourceProductVersion et DataSourceProductVersionNormalized ont la même valeur.Dans le cas d'OLE DB et d'ODBC, ces valeurs sont toujours identiques étant donné qu'elles sont mappées sur le même appel de fonction dans l'API native sous-jacente.

DataSourceProductVersionNormalized

string

Version normalisée pour la source de données, telle qu'elle peut être comparée à String.Compare().Son format est identique pour toutes les versions du fournisseur afin d'empêcher la version 10 d'opérer un tri entre les versions 1 et 2.

Par exemple, le fournisseur Oracle utilise un format « nn.nn.nn.nn.nn » pour sa version normalisée, qui a pour effet qu'une source de données Oracle 8i retourne « 08.01.07.04.01 ».SQL Server utilise le format « nn.nn.nnnn » Microsoft classique.

Dans certains cas, DataSourceProductVersion et DataSourceProductVersionNormalized ont la même valeur.Dans le cas d'OLE DB et d'ODBC, ces valeurs sont toujours identiques étant donné qu'elles sont mappées sur le même appel de fonction dans l'API native sous-jacente.

GroupByBehavior

GroupByBehavior

Spécifie la relation entre les colonnes dans une clause GROUP BY et les colonnes non agrégées dans la liste de sélection.

IdentifierPattern

string

Expression régulière qui correspond à un identificateur et dont la valeur de correspondance est l'identificateur.Par exemple, « [A-Za-z0-9_#$] ».

IdentifierCase

IdentifierCase

Indique si des identificateurs non entourés de guillemets sont traités ou non comme respectant la casse.

OrderByColumnsInSelect

bool

Spécifie si les colonnes d'une clause ORDER BY doivent figurer dans la liste de sélection.Une valeur true indique qu'elles doivent obligatoirement figurer dans la liste de sélection ; une valeur false indique qu'elles ne doivent pas obligatoirement figurer dans la liste de sélection.

ParameterMarkerFormat

string

Chaîne de format représentant la manière de formater un paramètre.

Si les paramètres nommés sont pris en charge par la source de données, le premier espace réservé dans cette chaîne doit être l'emplacement où le nom de paramètre doit être formaté.

Par exemple, si la source de données attend des paramètres nommés et précédés de « : », cela donne « :{0} ».En cas de formatage avec un nom de paramètre « p1 », la chaîne obtenue est « :p1 ».

Si la source de données attend des paramètres précédés de « @ » mais que les noms les incluent déjà, cela donne « {0} » et le résultat du formatage d'un paramètre nommé « @p1 » est simplement « @p1 ».

Pour les sources de données qui n'attendent pas de paramètres nommés et attendent l'utilisation du caractère « ? », la chaîne de format peut être spécifiée simplement comme « ? », de sorte que le nom de paramètre est ignoré.Pour OLE DB, nous retournons « ? ».

ParameterMarkerPattern

string

Expression régulière représentant un marqueur de paramètre.Elle a pour valeur de correspondance éventuelle le nom de paramètre.

Par exemple, si les paramètres nommés sont pris en charge avec un caractère initial « @ » qui sera inclus dans le nom de paramètre, cela donne : « (@[A-Za-z0-9_$#]*) ».

Toutefois, si les paramètres nommés sont pris en charge avec un « : » comme caractère initial ne faisant pas partie du nom de paramètre, cela donne : « :([A-Za-z0-9_$#]*) ».

Bien sûr, si la source de données ne prend pas en charge les paramètres nommés, cela donne simplement « ? ».

ParameterNameMaxLength

int

Longueur maximale d'un nom de paramètre en caractères.Si les noms de paramètres sont pris en charge, Visual Studio attend que la valeur minimale de longueur maximale soit de 30 caractères.

Si la source de données ne prend pas en charge les paramètres nommés, cette propriété retourne zéro.

ParameterNamePattern

string

Expression régulière représentant les noms de paramètre valides.Les différentes sources de données ont des règles différentes concernant les caractères qui peuvent être utilisés pour les noms de paramètre.

Si les noms de paramètre sont pris en charge, Visual Studio attend que les caractères « \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} » correspondent à l'ensemble minimal pris en charge de caractères valides pour les noms de paramètre.

QuotedIdentifierPattern

string

Expression régulière qui correspond à un identificateur entre guillemets et qui a pour valeur de correspondance l'identificateur proprement dit, sans les guillemets.Par exemple, si la source de données utilise des guillemets doubles pour identifier des identificateurs entre guillemets, cela donne : « (([^\"]|\"\")*) »

QuotedIdentifierCase

IdentifierCase

Indique si des identificateurs entourés de guillemets sont traités ou non comme respectant la casse.

StatementSeparatorPattern

string

Expression régulière représentant le séparateur d'instruction.

StringLiteralPattern

string

Expression régulière qui correspond à un littéral de chaîne et dont la valeur de correspondance est le littéral proprement dit.Par exemple, si la source de données utilise des guillemets simples pour identifier des chaînes, cela donne : "('([^']|'')*')"'

SupportedJoinOperators

SupportedJoinOperators

Spécifie les types d'instructions SQL jointes prises en charge par la source de données.

DataTypes

Cette collection de schémas expose des informations sur les types de données pris en charge par la base de données à laquelle le fournisseur .NET Framework managé est actuellement connecté.

Nom de colonne

Type de données

Description

TypeName

string

Nom de type de données spécifique au fournisseur.

ProviderDbType

int

Valeur de type de données spécifique au fournisseur à utiliser pour la spécification du type d'un paramètre.Par exemple, SqlDbType.Money ou OracleType.Blob.

ColumnSize

long

La longueur d'une colonne ou d'un paramètre non numérique fait référence à la longueur maximale ou à la longueur définie pour ce type par le fournisseur.

Pour les données de type caractère, il s'agit de la longueur maximale ou de la longueur en unités définie par la source de données.Le concept d'Oracle consiste à spécifier une longueur, puis à spécifier la taille de stockage réelle de certains types de données caractère.Cela définit uniquement la longueur en unités pour Oracle.

Pour les données de type date-heure, il s'agit de la longueur de la représentation de chaîne (en supposant la précision maximale autorisée de la partie fractions de secondes).

Si le type de données est numérique, il s'agit de la limite supérieure de la précision maximale du type de données.

CreateFormat

string

Chaîne de format représentant la manière d'ajouter cette colonne à une instruction de définition de données, telle que CREATE TABLE.Chaque élément dans le tableau CreateParameter doit être représenté par un « marqueur de paramètre » dans la chaîne de format.

Par exemple, le type de données SQL DECIMAL nécessite une précision et une échelle.Dans ce cas, la chaîne de format serait « DECIMAL({0},{1}) ».

CreateParameters

string

Paramètres de création à spécifier lors de la création d'une colonne de ce type de données.Les paramètres de création sont répertoriés dans la chaîne, avec des virgules de séparation, dans l'ordre dans lequel ils doivent être fournis.

Par exemple, le type de données SQL DECIMAL nécessite une précision et une échelle.Dans ce cas, les paramètres de création doivent contenir la chaîne « precision, scale ».

Dans une commande de texte pour créer une colonne DECIMAL avec une précision de 10 et une échelle de 2, la valeur de la colonne CreateFormat peut être « DECIMAL({0},{1}) » et la spécification de type complète serait DECIMAL(10,2).

DataType

string

Nom du type .NET Framework du type de données.

IsAutoincrementable

bool

true — Les valeurs de ce type de données peuvent être auto-incrémentées.

false — Les valeurs de ce type de données ne peuvent pas être auto-incrémentées.

Notez que cela indique simplement si une colonne de ce type de données peut être auto-incrémentée, pas que toutes les colonnes de ce type le sont.

IsBestMatch

bool

true — Le type de données est la meilleure correspondance entre tous les types de données du magasin de données et le type de données .NET Framework indiqué par la valeur de la colonne DataType.

false — Le type de données n'est pas la meilleure correspondance.

Pour chaque ensemble de lignes dans lequel la valeur de la colonne DataType est identique, la colonne IsBestMatch est définie comme true dans une seule ligne.

IsCaseSensitive

bool

true — Le type de données est un type de caractère respectant la casse.

false — Le type de données n'est pas un type de caractère ou ne respecte pas la casse.

IsFixedLength

bool

true — Les colonnes de ce type de données créées par la DDL sont de longueur fixe.

false — Les colonnes de ce type de données créées par la DDL sont de longueur variable.

DBNull.Value — Il est impossible de déterminer si le fournisseur mappera ce champ avec une colonne de longueur fixe ou variable.

IsFixedPrecisionScale

bool

true — Le type de données a une précision et une échelle fixes.

false — Le type de données n'a pas de précision ni d'échelle fixes.

IsLong

bool

true — Le type de données contient des données très longues ; la définition de données très longues est spécifique au fournisseur.

false — Le type de données ne contient pas de données très longues.

IsNullable

bool

true — Le type de données est Nullable.

false — Le type de données n'est pas Nullable.

DBNull.Value — Il est impossible de déterminer si le type de données est Nullable.

IsSearchable

bool

true — Le type de données peut être utilisé dans une clause WHERE avec tout opérateur, à l'exception du prédicat LIKE.

false — Le type de données ne peut pas être utilisé dans une clause WHERE avec un opérateur, à l'exception du prédicat LIKE.

IsSearchableWithLike

bool

true — Le type de données peut être utilisé avec le prédicat LIKE.

false — Le type de données ne peut pas être utilisé avec le prédicat LIKE.

IsUnsigned

bool

true — Le type de données n'est pas signé.

false — Le type de données est signé.

DBNull.Value — Non applicable au type de données.

MaximumScale

short

Si l'indicateur de type est un type numérique, il correspond au nombre maximal de chiffres autorisés à droite de la virgule décimale.Sinon, c'est DBNull.Value.

MinimumScale

short

Si l'indicateur de type est un type numérique, il correspond au nombre minimal de chiffres autorisés à droite de la virgule décimale.Sinon, c'est DBNull.Value.

IsConcurrencyType

bool

true — Le type de données est mis à jour par la base de données à chaque modification de la ligne et la valeur de la colonne diffère de toutes les valeurs précédentes.

false — Le type de données n'est pas mis à jour par la base de données à chaque modification de la ligne.

DBNull.Value — La base de données ne prend pas en charge ce type de données.

IsLiteralsSupported

bool

true — Le type de données peut être exprimé comme littéral.

false — Le type de données ne peut pas être exprimé comme littéral.

LiteralPrefix

string

Préfixe appliqué à un littéral donné.

LitteralSuffix

string

Suffixe appliqué à un littéral donné.

NativeDataType

String

NativeDataType est une colonne spécifique à OLE DB pour l'exposition du type OLE DB du type de données.

Restrictions

Cette collection de schémas expose des informations sur les restrictions prises en charge par le fournisseur .NET Framework managé actuellement utilisé pour se connecter à la base de données.

Nom de colonne

Type de données

Description

CollectionName

string

Nom de la collection à laquelle ces restrictions s'appliquent.

RestrictionName

string

Nom de la restriction dans la collection.

RestrictionDefault

string

Ignoré.

RestrictionNumber

int

Emplacement réel des restrictions de collections dans lequel figure cette restriction particulière.

ReservedWords

Cette collection de schémas expose des informations sur les mots réservés par la base de données à laquelle le fournisseur .NET Framework managé est actuellement connecté.

Nom de colonne

Type de données

Description

ReservedWords

string

Mots réservés spécifiques au fournisseur.

Voir aussi

Concepts

GetSchema et collections de schémas (ADO.NET)

Autres ressources

Récupération d'informations de schéma de base de données (ADO.NET)