Общие коллекции схемы
Стандартные коллекции схем - это коллекции схем, реализуемые каждым из управляемых поставщиков .NET Framework. Вы можете запросить управляемого поставщика платформа .NET Framework, чтобы определить список поддерживаемых коллекций схем, вызвав метод GetSchema без аргументов или имя коллекции схем MetaDataCollections. При этом будет возвращена DataTable со списком поддерживаемых коллекций схем, число ограничений, которые каждая из них поддерживает, и число идентификационных частей, которые в них используются. Данные коллекции описывают все требуемые столбцы. По желанию в поставщиках может быть предусмотрено добавление дополнительных столбцов. Например, поставщики SqlClient
и OracleClient
добавляют к коллекции ограничений столбец ParameterName.
Если поставщик не может определить значение требуемого столбца, то он возвращает значение NULL.
Дополнительные сведения об использовании методов GetSchema см. в разделе Метод GetSchema и коллекции схем.
Коллекция схем MetaDataCollections
Данная коллекция схем предоставляет сведения обо всех коллекциях схем, поддерживаемых управляемым поставщиком .NET Framework, который используется в настоящее время для подключения к базе данных.
ColumnName | Тип данных | Description |
---|---|---|
CollectionName | строка | Имя коллекции, передаваемое методу GetSchema для возврата коллекции. |
NumberOfRestrictions | INT | Число ограничений, которые могут быть указаны для коллекции. |
NumberOfIdentifierParts | INT | Число частей в составном имени идентификатора и (или) объекта базы данных. Например, в SQL Server такое число частей может быть равным 3 для таблиц и 4 - для столбцов. В Oracle оно может быть равным 2 для таблиц и 3 - для столбцов. |
Коллекция схем DataSourceInformation
Данная коллекция схем предоставляет сведения об источнике данных, к которому в данный момент подключен управляемый поставщик .NET Framework.
ColumnName | Тип данных | Description |
---|---|---|
CompositeIdentifierSeparatorPattern | строка | Регулярное выражение служит для согласования составных разделителей в составном идентификаторе. Например, "\". (для SQL Server) или "@|\". (для Oracle). Составной идентификатор обычно используется для имени объекта базы данных, например pubs.dbo.authors или pubs@dbo.authors. Для SQL Server используйте регулярное выражение "\.". Для OracleClient используйте "@|\.". Для ODBC используется Catalog_name_separator. Для OLE DB следует использовать DBLITERAL_CATALOG_SEPARATOR или DBLITERAL_SCHEMA_SEPARATOR. |
DataSourceProductName | строка | Имя продукта, доступ к которому обеспечивается поставщиком, например «Oracle» или «SQLServer». |
DataSourceProductVersion | строка | Версия продукта, доступ к которому обеспечивается поставщиком, в собственном формате источников данных, а не в формате Microsoft. В некоторых случаях DataSourceProductVersion и DataSourceProductVersionNormalized будут иметь одно значение. В случае OLE DB и ODBC эти значения всегда одинаковы, поскольку они сопоставляются с одним и тем же вызовом функции в собственном API-интерфейсе. |
DataSourceProductVersionNormalized | строка | Нормализованная версия для источника данных, позволяющая провести ее сравнение с помощью функции String.Compare() . Данный формат является согласованным для всех версий поставщика, что позволяет исключить появление обозначения версии 10 между обозначениями версий 1 и 2 после сортировки.Например, поставщик Oracle использует формат nn.nn.nn.nn.nn.nn.nn для его нормализованной версии, что приводит к возврату источника данных Oracle 8i "08.01.07.04.01". SQL Server использует типичный формат Microsoft nn.nn.nnnn. В некоторых случаях DataSourceProductVersion и DataSourceProductVersionNormalized будут иметь одно значение. В случае OLE DB и ODBC эти значения всегда одинаковы, поскольку они сопоставляются с одним и тем же вызовом функции в собственном API-интерфейсе. |
GroupByBehavior | GroupByBehavior | Задает связь между столбцами в предложении GROUP BY и неагрегатными столбцами в списке выбора. |
IdentifierPattern | строка | Регулярное выражение, которое согласуется с идентификатором или имеет совпадающее с ним значение. Например, «[A-Za-z0-9_#$]». |
IdentifierCase | IdentifierCase | Определяет, обрабатываются ли идентификаторы, не заключенные в кавычки, с учетом регистра. |
OrderByColumnsInSelect | bool | Указывает, должны ли столбцы в предложении ORDER BY быть в списке выбора. Значение true определяет, что они должны находиться в списке выбора, значение false указывает обратное. |
ParameterMarkerFormat | строка | Строка форматирования, представляющая способ форматирования параметра. Если именованные параметры поддерживаются источником данных, первый местозаполнитель в этой строке должен находиться в позиции форматирования имени параметра. Например, если источник данных ожидает получение параметров с именем и префиксом ":", то значением будет ":{0}". При форматировании с именем параметра «p1» итоговая строка будет иметь вид «:p1». Если источник данных ожидает, что параметры будут префиксированы с помощью @, но имена уже включают их, это будет "{0}" и результат форматирования параметра с именем "@p1" будет просто "@p1". Для источников данных, в которых вместо именованных параметров ожидается использование символа "?", строка форматирования может указываться в виде "?", что приводит к пропуску имени параметра. Для OLE DB мы возвращаем "?". |
ParameterMarkerPattern | строка | Регулярное выражение, соответствующее маркеру параметра. Оно будет иметь значение, совпадающее с именем параметра (если таковое имеется). Например, если именованные параметры поддерживаются символом свинца "@", который будет включен в имя параметра, будет следующим: "(@[A-Za-z0-9_$#]*)". Однако если именованные параметры поддерживаются с символом ":" в качестве символа свинца и не являются частью имени параметра, это будет: ":([A-Za-z0-9_$]*)". Разумеется, если источник данных не поддерживает именованные параметры, выражением будет просто "?". |
ParameterNameMaxLength | INT | Максимальная длина имени параметра в символах. В среде Visual Studio принято предположение, что в случае поддержки имен параметров минимальным значением максимальной длины будет 30 символов. Если источник данных не поддерживает именованные параметры, это свойство возвращает ноль. |
ParameterNamePattern | строка | Регулярное выражение, соответствующее действительным именам параметров. Для различных источников данных применяются разные правила использования символов в именах параметров. В среде Visual Studio принято предположение, что в случае поддержки имен параметров символы «\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}» являются минимальным поддерживаемым набором символов, действительных для имен параметров. |
QuotedIdentifierPattern | строка | Регулярное выражение, соответствующее идентификатору, заключенному в кавычки, и имеющее значение идентификатора без кавычек. Например, если источник данных использовал двойные кавычки для идентификации идентификаторов кавычки, это будет: "(([^\"]\"\")*". |
QuotedIdentifierCase | IdentifierCase | Определяет, обрабатываются ли заключенные в кавычки идентификаторы с учетом регистра. |
StatementSeparatorPattern | строка | Регулярное выражение, соответствующее разделителю инструкций. |
StringLiteralPattern | строка | Регулярное выражение, соответствующее строковому литералу, и имеющее одинаковое с ним значение. Например, если источник данных использовал одинарные кавычки для идентификации строк, это будет: "('([^']|') *')"' |
SupportedJoinOperators | SupportedJoinOperators | Указывает, какие типы инструкций соединения SQL поддерживаются источником данных. |
DataTypes
Данная коллекция схем предоставляет сведения о типах данных, поддерживаемых базой данных, к которой в данный момент подключен управляемый поставщик .NET Framework.
ColumnName | Тип данных | Description |
---|---|---|
TypeName | строка | Имя типа данных, связанного с поставщиком. |
ProviderDbType | INT | Зависящее от поставщика значение типа, которое следует использовать при указании типа параметра. Например, SqlDbType.Money или OracleType.Blob. |
ColumnSize | длинный | Значение длины нечислового столбца или параметра, которое относится либо к максимуму, либо к длине, определенной поставщиком для этого типа. Для символьных данных это максимальная или определенная длина в единицах, заданных источником данных. В Oracle для символьных данных некоторых типов применяется такой принцип, что вначале указывается длина, а затем - действительный размер хранения. Указывается длина в единицах только для Oracle. Для типов данных даты-времени это длина строки представления (при условии использования максимально допустимой точности компонента с определением долей секунды). Если это числовой тип данных, то это верхняя граница максимальной точности типа данных. |
CreateFormat | строка | Строка форматирования, представляющая способ добавления данного столбца в инструкцию описания данных, например CREATE TABLE. Каждый элемент массива CreateParameter должен быть представлен в строке форматирования так называемым «маркером параметра». Например, тип данных DECIMAL в SQL требует указания точности и масштаба. В этом случае строка форматирования имеет вид "DECIMAL({0},{1})". |
CreateParameters | строка | Параметры создания, которые необходимо указать при создании столбца данных этого типа. Каждый параметр создания перечисляется в строке с разделением запятыми в порядке указания параметров. Например, тип данных DECIMAL в SQL требует указания точности и масштаба. В этом случае параметры создания должны содержать строку «точность, масштаб». В тексте команды для создания столбца DECIMAL с точностью 10 и масштабом 2 значение столбца CreateFormat может представлять собой "DECIMAL({0},{1})", в этом случае полная спецификация типа будет иметь вид DECIMAL(10,2). |
Тип данных | строка | Имя типа данных платформы .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. База данных не поддерживает данные этого типа. |
IsLiteralSupported | bool | true. Данные этого типа могут быть выражены в виде литерала. false. Данные этого типа не могут быть выражены в виде литерала. |
LiteralPrefix | строка | К заданному литералу применяется префикс. |
LiteralSuffix | строка | К заданному литералу применяется суффикс. |
NativeDataType | Строка | NativeDataType представляет собой столбец OLE DB, который служит для обеспечения доступа к данным типа OLE DB. |
Ограничения
Данная коллекция схем предоставляет сведения об ограничениях, поддерживаемых управляемым поставщиком .NET Framework, который в данный момент подключен к базе данных.
ColumnName | Тип данных | Description |
---|---|---|
CollectionName | строка | Имя коллекции, к которой применяются эти ограничения. |
RestrictionName | строка | Имя ограничения в коллекции. |
RestrictionDefault | строка | Пропускается. |
RestrictionNumber | INT | Фактическое расположение в коллекциях тех ограничений, к которым относится данное конкретное ограничение. |
ReservedWords
Данная коллекция схем предоставляет сведения о словах, резервируемых базой данных, с которой в данный момент соединен управляемый поставщик .NET Framework.
ColumnName | Тип данных | Description |
---|---|---|
ReservedWord | строка | Зарезервированное слово, определяемое поставщиком. |