Partager via


Collections de schémas courants

S'applique à : .NET Framework .NET .NET Standard

Télécharger ADO.NET

Les collections de schémas courants sont les collections de schémas implémentées par chacun des fournisseurs managés .NET. Vous pouvez interroger un fournisseur managé .NET pour é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 méthode 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 d’autres colonnes. Par exemple, le fournisseur de données Microsoft SqlClient pour SQL Server ajoute 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, consultez Collections GetSchema et Schema.

MetaDataCollections

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

ColumnName DataType Description
CollectionName string Nom de la collection à passer à la méthode GetSchema pour retourner la collection.
NumberOfRestrictions 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, la valeur est 3 pour les tables et 4 pour les colonnes.

DataSourceInformation

Cette collection de schémas expose des informations sur la source de données à laquelle le fournisseur de données Microsoft SqlClient pour SQL Server est actuellement connecté.

ColumnName DataType Description
CompositeIdentifierSeparatorPattern string Expression régulière pour mettre en correspondance les séparateurs composites dans un identificateur composite. Par exemple, \. (pour SQL Server).

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 \..
DataSourceProductName string Nom du produit auquel accède le fournisseur, par exemple « 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.
DataSourceProductVersionNormalized string Version normalisée pour la source de données, telle qu'elle peut être comparée à String.Compare(). Ce format est cohérent pour toutes les versions du fournisseur afin d’empêcher la version 10 d’être triée entre la version 1 et la version 2.

Par exemple, SQL Server utilise le format nn.nn.nnnn Microsoft classique.

Dans certains cas, DataSourceProductVersion et DataSourceProductVersionNormalized ont la même valeur.
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 figurer dans la liste de sélection. Une valeur false indique qu’elles ne sont pas requises 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 avec un préfixe :, cette chaîne serait :{0}. En cas de formatage de ce paramètre avec un nom p1, la chaîne obtenue est :p1.

Si la source de données attend des paramètres avec le préfixe @, mais qu’ils sont déjà présents dans les noms, cette chaîne serait {0} et le résultat du formatage d’un paramètre nommé @p1 serait @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 comme ?. Dans ce cas, le nom de paramètre est ignoré.
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, ce modèle serait : (\@[A-Za-z0-9_$#]*).

En revanche, 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, ce modèle serait : :([A-Za-z0-9_$#]\*).

Si la source de données ne prend pas en charge les paramètres nommés, ce modèle serait ?.
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. Différentes sources de données ont des règles différentes sur les caractères qui peuvent être utilisés pour les noms de paramètres.

Si les noms de paramètres sont pris en charge, Visual Studio s’attend à ce que les caractères \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} constituent le jeu minimal de caractères pris en charge qui sont valides pour les noms de paramètres.
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, ce modèle serait : (([^\\"]\|\\"\\")*).
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, ce modèle serait : ('([^']\|'')*')'
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 est actuellement connecté.

ColumnName DataType Description
TypeName string Nom du type de données spécifique au fournisseur.
ProviderDbType int Valeur de type spécifique du fournisseur qui doit être utilisée au moment de spécifier le type d’un paramètre. Par exemple : SqlDbType.Money.
ColumnSize long Longueur d’une colonne ou d’un paramètre non numérique. Cette valeur fait référence soit à la longueur maximale, soit à la longueur définie pour ce type par le fournisseur.

Pour les données caractères, cette valeur correspond à la longueur maximale ou définie, en unités, configurée par la source de données.

Pour les types de données de date et d’heure, cette valeur est la longueur de la représentation de chaîne (en supposant la précision maximale autorisée pour le composant fractions de secondes).

Si les données sont de type numérique, cette valeur et 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 est 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. Chaque paramètre de création est listé dans la chaîne, séparé par une virgule dans l’ordre dans lequel il doit être fourni.

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 destinée à 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 est DECIMAL(10,2).
DataType string Nom du type .NET 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 peuvent ne pas être auto-incrémentées.

Cette propriété 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 sont auto-incrémentées.
IsBestMatch bool true – Le type de données est la correspondance la plus proche entre tous les types de données du magasin de données et le type de données .NET 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 n’a la valeur true que dans une seule ligne.
IsCaseSensitive bool true - Le type de données est de type caractère et respecte la casse.

false - Le type de données n’est pas de type caractère ou ne respecte pas la casse.
IsFixedLength bool true - Les colonnes de ce type de données créées par le langage de définition de données (DDL) seront de longueur fixe.

false - Les colonnes de ce type de données créées par le DDL seront de longueur variable.

DBNull.Value - Le fait que le fournisseur mappe ce champ avec une colonne de longueur fixe ou de longueur variable n’est pas connu.
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 une précision et une é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 autorise la valeur null.

false - Le type de données n’autorise pas la valeur null.

DBNull.Value - Le fait que le type de données autorise la valeur null n’est pas connu.
IsSearchable bool true - Le type de données peut être utilisé dans une clause WHERE avec n’importe quel opérateur, à l’exception du prédicat LIKE.

false - Le type de données ne peut pas être utilisé dans une clause WHERE avec n’importe quel 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, cette valeur est le nombre maximal de chiffres autorisés à droite de la virgule décimale. Sinon, cette valeur est DBNull.Value.
MinimumScale short Si l’indicateur de type est un type numérique, cette valeur est le nombre minimal de chiffres autorisés à droite de la virgule décimale. Sinon, cette valeur est DBNull.Value.
IsConcurrencyType bool true - Le type de données est mis à jour par la base de données à chaque fois que la ligne est modifiée et la valeur de la colonne est différente 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 fois que la ligne est modifiée.

DBNull.Value - La base de données ne prend pas en charge ce type de données.
IsLiteralSupported bool true - Le type de données peut être exprimé sous la forme d’un littéral.

false - Le type de données ne peut pas être exprimé sous la forme d’un littéral.
LiteralPrefix string Préfixe appliqué à un littéral donné.
LiteralSuffix string Suffixe appliqué à un littéral donné.

Restrictions

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

ColumnName DataType 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 est actuellement connecté.

ColumnName DataType Description
ReservedWord string Mot réservé spécifique du fournisseur.

Voir aussi