Стандартные коллекции схем (ADO.NET)
Стандартные коллекции схем — это коллекции схем, реализуемые каждым из управляемых поставщиков .NET Framework.Можно запросить управляемый поставщик .NET Framework для определения списка поддерживаемых коллекций схем, вызвав метод GetSchema без аргументов или с именем коллекции схем MetaDataCollections.При этом будет возвращена DataTable со списком поддерживаемых коллекций схем, числом ограничений, которые каждая из них поддерживает, и числом идентификационных частей, которые в них используются.Данные коллекции описывают все требуемые столбцы.По желанию в поставщиках может быть предусмотрено добавление дополнительных столбцов.Например, поставщики SqlClient и OracleClient добавляют к коллекции ограничений столбец ParameterName.
Если поставщик не может определить значение требуемого столбца, то он возвращает значение NULL.
Дополнительные сведения об использовании методов GetSchema см. в разделе Метод GetSchema и коллекции схем (ADO.NET).
Коллекция схем MetaDataCollections
Данная коллекция схем предоставляет сведения обо всех коллекциях схем, поддерживаемых управляемым поставщиком .NET Framework, который используется в настоящее время для подключения к базе данных.
ColumnName |
DataType |
Описание |
---|---|---|
CollectionName |
string |
Имя коллекции, передаваемое методу GetSchema для возврата коллекции. |
NumberOfRestriction |
int |
Число ограничений, которые могут быть указаны для коллекции. |
NumberOfIdentifierParts |
int |
Число частей в составном имени идентификатора и (или) объекта базы данных.Например, в SQL Server такое число частей может быть равным 3 для таблиц и 4 — для столбцов.В Oracle оно может быть равным 2 для таблиц и 3 — для столбцов. |
Коллекция схем DataSourceInformation
Данная коллекция схем предоставляет сведения об источнике данных, к которому в данный момент подключен управляемый поставщик .NET Framework.
ColumnName |
DataType |
Описание |
---|---|---|
CompositeIdentifierSeparatorPattern |
string |
Регулярное выражение служит для согласования составных разделителей в составном идентификаторе.Например, «\.» (для SQL Server) или «@|\.» (для Oracle). Как правило, составные идентификаторы используются в качестве имен объектов базы данных, например: pubs.dbo.authors или pubs@dbo.authors. Для SQL Server следует использовать регулярное выражение «\.».Для OracleClient следует использовать «@|\.». Для ODBC следует использовать Catalog_name_seperator. Для OLE DB следует использовать DBLITERAL_CATALOG_SEPARATOR или DBLITERAL_SCHEMA_SEPARATOR. |
DataSourceProductName |
string |
Имя продукта, доступ к которому обеспечивается поставщиком, например «Oracle» или «SQLServer». |
DataSourceProductVersion |
string |
Версия продукта, доступ к которому обеспечивается поставщиком, в собственном формате источников данных, а не в формате Microsoft. В некоторых случаях DataSourceProductVersion и DataSourceProductVersionNormalized будут иметь одно значение.В случае OLE DB и ODBC эти значения всегда одинаковы, поскольку они сопоставляются с одним и тем же вызовом функции в собственном API-интерфейсе. |
DataSourceProductVersionNormalized |
string |
Нормализованная версия для источника данных, позволяющая провести ее сравнение с помощью функции String.Compare().Данный формат является согласованным для всех версий поставщика, что позволяет исключить появление обозначения версии 10 между обозначениями версий 1 и 2 после сортировки. Например, поставщик Oracle использует формат «nn.nn.nn.nn.nn» для нормализованной версии, в результате чего источник данных Oracle 8i возвращает значение «08.01.07.04.01».Для SQL Server используется обычный формат Майкрософт, имеющий вид «nn.nn.nnnn». В некоторых случаях DataSourceProductVersion и DataSourceProductVersionNormalized будут иметь одно значение.В случае OLE DB и ODBC эти значения всегда одинаковы, поскольку они сопоставляются с одним и тем же вызовом функции в собственном API-интерфейсе. |
GroupByBehavior |
Задает связь между столбцами в предложении GROUP BY и неагрегатными столбцами в списке выбора. |
|
IdentifierPattern |
string |
Регулярное выражение, которое согласуется с идентификатором или имеет совпадающее с ним значение.Например, «[A-Za-z0-9_#$]». |
IdentifierCase |
Определяет, обрабатываются ли идентификаторы, не заключенные в кавычки, с учетом регистра. |
|
OrderByColumnsInSelect |
bool |
Указывает, должны ли столбцы в предложении ORDER BY быть в списке выбора.Значение true определяет, что они должны находиться в списке выбора, значение false указывает обратное. |
ParameterMarkerFormat |
string |
Строка форматирования, представляющая способ форматирования параметра. Если именованные параметры поддерживаются источником данных, первый местозаполнитель в этой строке должен находиться в позиции форматирования имени параметра. Например, если источник данных ожидает получение параметров с именем и префиксом «:», то значением будет «:{0}».При форматировании с именем параметра «p1» итоговая строка будет иметь вид «:p1». Если источник данных ожидает получения параметров с префиксом «@», а имена уже содержат этот префикс, то значение будет равно «{0}», а результатом форматирования параметра с именем «@p1» станет значение «@p1». Для источников данных, в которых вместо именованных параметров ожидается использование символа «?», строка форматирования может указываться в виде «?», что приводит к пропуску имени параметра.Для OLE DB возвращается символ «?». |
ParameterMarkerPattern |
string |
Регулярное выражение, соответствующее маркеру параметра.Оно будет иметь значение, совпадающее с именем параметра (если таковое имеется). Например, если поддерживаются именованные параметры с начальным символом «@», включаемым в имя параметра, то выражение будет иметь вид «(@[A-Za-z0-9_$#]*)». Однако если поддерживаются именованные параметры с начальным символом «:», не являющимся частью имени параметра, то выражение будет иметь вид «:([A-Za-z0-9_$#]*)». Разумеется, если источник данных не поддерживает именованные параметры, выражением будет просто «?». |
ParameterNameMaxLength |
int |
Максимальная длина имени параметра в символах.В среде Visual Studio принято предположение, что в случае поддержки имен параметров минимальным значением максимальной длины будет 30 символов. Если источник данных не поддерживает именованные параметры, это свойство возвращает ноль. |
ParameterNamePattern |
string |
Регулярное выражение, соответствующее действительным именам параметров.Для различных источников данных применяются разные правила использования символов в именах параметров. В среде Visual Studio принято предположение, что в случае поддержки имен параметров символы «\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}» являются минимальным поддерживаемым набором символов, действительных для имен параметров. |
QuotedIdentifierPattern |
string |
Регулярное выражение, соответствующее идентификатору, заключенному в кавычки, и имеющее значение идентификатора без кавычек.Например, если в источнике данных используются двойные кавычки для определения идентификаторов, заключенных в кавычки, то выражение будет следующим: «(([^\"]|\"\")*)». |
QuotedIdentifierCase |
Определяет, обрабатываются ли заключенные в кавычки идентификаторы с учетом регистра. |
|
StatementSeparatorPattern |
string |
Регулярное выражение, соответствующее разделителю инструкций. |
StringLiteralPattern |
string |
Регулярное выражение, соответствующее строковому литералу, и имеющее одинаковое с ним значение.Например, если в источнике данных используются одинарные кавычки для определения строк, то выражение будет следующим: «('([^']|'')*')». |
SupportedJoinOperators |
Указывает, какие типы инструкций соединения SQL поддерживаются источником данных. |
DataTypes
Данная коллекция схем предоставляет сведения о типах данных, поддерживаемых базой данных, к которой в данный момент подключен управляемый поставщик .NET Framework.
ColumnName |
DataType |
Описание |
---|---|---|
TypeName |
string |
Имя типа данных, зависящего от поставщика. |
ProviderDbType |
int |
Значение типа, зависящего от поставщика, которое можно использовать при задании типа параметра.Например, SqlDbType.Money или OracleType.Blob. |
ColumnSize |
long |
Значение длины нечислового столбца или параметра, которое относится либо к максимуму, либо к длине, определенной поставщиком для этого типа. Для символьных данных это максимальная или определенная длина в единицах, заданных источником данных.В Oracle для символьных данных некоторых типов применяется такой принцип, что вначале указывается длина, а затем — действительный размер хранения.Указывается длина в единицах только для Oracle. Для типов данных даты-времени это длина строки представления (при условии использования максимально допустимой точности компонента с определением долей секунды). Если типа данных является числовым, это верхняя граница максимальной точности типа данных. |
CreateFormat |
string |
Строка форматирования, представляющая способ добавления данного столбца в инструкцию описания данных, например CREATE TABLE.Каждый элемент массива CreateParameter должен быть представлен в строке форматирования так называемым «маркером параметра». Например, тип данных DECIMAL в SQL требует указания точности и масштаба.В этом случае строка форматирования имеет вид «DECIMAL({0},{1})». |
CreateParameters |
string |
Параметры создания, которые необходимо указать при создании столбца данных этого типа.Каждый параметр создания перечисляется в строке с разделением запятыми в порядке указания параметров. Например, тип данных DECIMAL в SQL требует указания точности и масштаба.В этом случае параметры создания должны содержать строку «точность, масштаб». В тексте команды для создания столбца DECIMAL с точностью 10 и масштабом 2 значение столбца CreateFormat может представлять собой «DECIMAL({0},{1})», в этом случае полная спецификация типа будет иметь вид «DECIMAL(10,2)». |
DataType |
string |
Имя типа данных платформы .NET Framework. |
IsAutoincrementable |
bool |
true. Значения данных этого типа могут быть заданы с автоматическим приращением. false. Значения данных этого типа не могут быть заданы с автоматическим приращением. Обратите внимание, что определяется лишь возможность, что столбцы этого типа данных могут быть заданы с автоматическим приращением, а не то, что все столбцы этого типа имеют автоматическое приращение. |
IsBestMatch |
bool |
true. Данные этого типа выбираются с учетом наилучшего соответствия между типами данных хранилища данных и типом данных .NET Framework, определяемым значением в столбце DataType. false. Данные этого типа не выбираются с учетом наилучшего соответствия. Для каждого набора строк, в которых значение столбца DataType одинаково, столбцу IsBestMatch присваивается значение true только в одной строке. |
IsCaseSensitive |
bool |
true. Данные этого типа являются символьными и задаются с учетом регистра. false. Данные этого типа не являются символьными, или в них не учитывается регистр. |
IsFixedLength |
bool |
true. Столбцы данных этого типа, созданные с помощью языка DDL, будут иметь фиксированную длину. false. Столбцы данных этого типа, созданные с помощью языка DDL, будут иметь переменную длину. DBNull.Value. Неизвестно, с каким столбцом поставщик сопоставит это поле — со столбцом фиксированной длины или переменной длины. |
IsFixedPrecisionScale |
bool |
true. Данные этого типа имеют фиксированные точность и масштаб. false. Данные этого типа не имеют фиксированной точности и масштаба. |
IsLong |
bool |
true. Данные этого типа содержат данные очень большой длины. Определение данных очень большой длины зависит от поставщика. false. Данные этого типа не содержат данные очень большой длины. |
IsNullable |
bool |
true. Данные этого типа допускают значения NULL. false. Данные этого типа не допускают значения NULL. DBNull.Value. Неизвестно, допускают ли данные этого типа значения NULL. |
IsSearchable |
bool |
true. Данные этого типа могут использоваться в предложении WHERE с любым оператором, за исключением предиката LIKE. false. Данные этого типа не могут использоваться в предложении WHERE ни с одним оператором, за исключением предиката LIKE. |
IsSearchableWithLike |
bool |
true. Данные этого типа могут использоваться с предикатом LIKE. false. Данные этого типа не могут использоваться с предикатом LIKE. |
IsUnsigned |
bool |
true. Данные этого типа являются беззнаковыми. false. Данные этого типа представляют собой данные со знаком. DBNull.Value. Значение неприменимо для типа данных. |
MaximumScale |
short |
Если индикатор типа является числовым типом, то он обозначает максимально допустимое число десятичных знаков после запятой.В противном случае это DBNull.Value. |
MinimumScale |
short |
Если индикатор типа является числовым типом, то он обозначает минимально допустимое число десятичных знаков после запятой.В противном случае это DBNull.Value. |
IsConcurrencyType |
bool |
true. Данные этого типа обновляются базой данных при каждом изменении строки, а текущее значение столбца отличается от всех предыдущих значений. false. Данные этого типа не обновляются базой данных при каждом изменении строки. DBNull.Value. База данных не поддерживает данные этого типа. |
IsLiteralsSupported |
bool |
true. Данные этого типа могут быть выражены в виде литерала. false. Данные этого типа не могут быть выражены в виде литерала. |
LiteralPrefix |
string |
К заданному литералу применяется префикс. |
LitteralSuffix |
string |
К заданному литералу применяется суффикс. |
NativeDataType |
String |
NativeDataType представляет собой столбец OLE DB, который служит для обеспечения доступа к данным типа OLE DB. |
Restrictions
Данная коллекция схем предоставляет сведения об ограничениях, поддерживаемых управляемым поставщиком .NET Framework, который в данный момент подключен к базе данных.
ColumnName |
DataType |
Описание |
---|---|---|
CollectionName |
string |
Имя коллекции, к которой применяются эти ограничения. |
RestrictionName |
string |
Имя ограничения в коллекции. |
RestrictionDefault |
string |
Не обрабатывается |
RestrictionNumber |
int |
Фактическое расположение в коллекциях тех ограничений, к которым относится данное конкретное ограничение. |
ReservedWords
Данная коллекция схем предоставляет сведения о словах, резервируемых базой данных, с которой в данный момент соединен управляемый поставщик .NET Framework.
ColumnName |
DataType |
Описание |
---|---|---|
ReservedWords |
string |
Зарезервированные слова, определяемые поставщиком. |
См. также
Основные понятия
Метод GetSchema и коллекции схем (ADO.NET)