Щелкните, чтобы оценить и отправить отзыв
Свернуть все/Развернуть все Свернуть все
.NET Framework Developer's Guide
Стандартные коллекции схем (ADO.NET)

Обновлен: November 2007

Стандартные коллекции схем — это коллекции схем, реализуемые каждым из управляемых поставщиков .NET Framework. Можно запросить управляемый поставщик .NET Framework для определения списка поддерживаемых коллекций схем, вызвав метод GetSchema без аргументов или с именем коллекции схем MetaDataCollections. При этом будет возвращена DataTable со списком поддерживаемых коллекций схем, числом ограничений, которые каждая из них поддерживает, и числом идентификационных частей, которые в них используются. Данные коллекции описывают все требуемые столбцы. По желанию в поставщиках может быть предусмотрено добавление дополнительных столбцов. Например, поставщики SqlClient и OracleClient добавляют к коллекции ограничений столбец ParameterName.

Если поставщик не может определить значение требуемого столбца, то он возвращает значение NULL.

Дополнительные сведения об использовании методов GetSchema см. в разделе Метод GetSchema и коллекции схем (ADO.NET).

Данная коллекция схем предоставляет сведения обо всех коллекциях схем, поддерживаемых управляемым поставщиком .NET Framework, который используется в настоящее время для подключения к базе данных.

ColumnName

DataType

Описание

CollectionName

string

Имя коллекции, передаваемое методу GetSchema для возврата коллекции.

NumberOfRestriction

int

Число ограничений, которые могут быть указаны для коллекции.

NumberOfIdentifierParts

int

Число частей в составном имени идентификатора и (или) объекта базы данных. Например, в SQL Server такое число частей может быть равным 3 для таблиц и 4 — для столбцов. В Oracle оно может быть равным 2 для таблиц и 3 — для столбцов.

Данная коллекция схем предоставляет сведения об источнике данных, к которому в данный момент подключен управляемый поставщик .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

GroupByBehavior

Задает связь между столбцами в предложении GROUP BY и нестатистическими столбцами в списке выбора.

IdentifierPattern

string

Регулярное выражение, которое согласуется с идентификатором или имеет совпадающее с ним значение. Например, «[A-Za-z0-9_#$]».

IdentifierCase

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

IdentifierCase

Определяет, обрабатываются ли заключенные в кавычки идентификаторы с учетом регистра.

StatementSeparatorPattern

string

Регулярное выражение, соответствующее разделителю инструкций.

StringLiteralPattern

string

Регулярное выражение, соответствующее строковому литералу, и имеющее одинаковое с ним значение. Например, если в источнике данных используются одинарные кавычки для определения строк, выражение будет следующим: "('([^']|'')*')"'

SupportedJoinOperators

SupportedJoinOperators

Указывает, какие типы инструкций соединения SQL поддерживаются источником данных.

Данная коллекция схем предоставляет сведения о типах данных, поддерживаемых базой данных, к которой в данный момент подключен управляемый поставщик .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.

Данная коллекция схем предоставляет сведения об ограничениях, поддерживаемых управляемым поставщиком .NET Framework, который в данный момент подключен к базе данных.

ColumnName

DataType

Описание

CollectionName

string

Имя коллекции, к которой применяются эти ограничения.

RestrictionName

string

Имя ограничения в коллекции.

RestrictionDefault

string

Пропускается.

RestrictionNumber

int

Фактическое расположение в коллекциях тех ограничений, к которым относится данное конкретное ограничение.

Данная коллекция схем предоставляет сведения о словах, резервируемых базой данных, с которой в данный момент соединен управляемый поставщик .NET Framework.

ColumnName

DataType

Описание

ReservedWords

string

Зарезервированные слова, определяемые поставщиком.

Содержимое Сообщества   Что такое «Содержимое сообщества»?
Добавить содержимое RSS  Примечания
Processing
© 2009 Microsoft Corporation. Все права защищены. Условия использования | Товарные знаки | Конфиденциальность
Page view tracker