OleDbDataReader.GetSchemaTable Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает объект DataTable, описывающий метаданные столбцов модуля чтения данных OleDbDataReader.
public:
override System::Data::DataTable ^ GetSchemaTable();
public:
virtual System::Data::DataTable ^ GetSchemaTable();
public override System.Data.DataTable? GetSchemaTable ();
public System.Data.DataTable GetSchemaTable ();
public override System.Data.DataTable GetSchemaTable ();
override this.GetSchemaTable : unit -> System.Data.DataTable
abstract member GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Overrides Function GetSchemaTable () As DataTable
Public Function GetSchemaTable () As DataTable
Возвращаемое значение
Объект DataTable, описывающий метаданные столбцов.
Реализации
Исключения
Объект OleDbDataReader закрыт.
Комментарии
Метод GetSchemaTable сопоставляется с методом OLE DB IColumnsRowset::GetColumnsRowset и возвращает метаданные о каждом столбце в следующем порядке:
Столбец DataReader | Идентификатор столбца OLE DB | Описание |
---|---|---|
ColumnName | DBCOLUMN_NAME | Имя столбца; это может быть не уникально. Если определить не удается, то будет возвращено значение NULL. Это имя всегда отражает последнее переименование столбца в текущем представлении или в тексте команды. |
ColumnOrdinal | DBCOLUMN_NUMBER | Отсчитываемый от нуля порядковый номер столбца. Этот столбец не может содержать значение NULL. |
ColumnSize | DBCOLUMN_COLUMNSIZE | Максимально допустимая длина значения данного столбца. Для столбцов, использующих тип данных фиксированной длины, это размер типа данных. |
NumericPrecision | DBCOLUMN_PRECISION | Если DbType является числовым типом данных, это максимальная точность столбца. Точность столбцов с типом данных DBTYPE_DECIMAL или DBTYPE_NUMERIC зависит от определения столбца. Если DbType не является числовым типом данных, это значение null. |
NumericScale | DBCOLUMN_SCALE | Если dbType имеет значение DBTYPE_DECIMAL или DBTYPE_NUMERIC, это число цифр справа от десятичной запятой. В противном случае это значение равно NULL. |
DataType | Нет | Сопоставляется с типом платформа .NET Framework столбца. |
ProviderType | DBCOLUMN_TYPE | Признак типа данных столбца. Если тип данных столбца зависит от строки к строке, это должно быть DBTYPE_VARIANT. Этот столбец не может содержать значение NULL. |
IsLong | DBCOLUMNFLAGS_ISLONG | Поставщик задает DBCOLUMNFLAGS_ISLONG, если столбец содержит двоичный длинный объект (BLOB), содержащий очень длинные данные. Определение очень большого объема данных зависит от поставщика. Значение этого флага соответствует значению столбца IS_LONG в наборе строк PROVIDER_TYPES для типа данных. |
AllowDBNull | DBCOLUMNFLAGS_ISNULLABLE | Поставщик задает DBCOLUMNFLAGS_ISNULLABLE, может ли потребитель задать для столбца значение NULL или поставщик не может определить, может ли потребитель задать для столбца значение NULL. Столбец может содержать значения NULL, даже если сам столбец не может иметь значение NULL. |
IsReadOnly | DBCOLUMNFLAGS_WRITE |
true Значение , если столбец не может быть изменен; в противном случае false . Предполагается, что столбец доступен для записи, если поставщик установил флаг DBCOLUMNFLAGS_WRITE или DBCOLUMNFLAGS_WRITEUNKNOWN. |
IsRowVersion | DBCOLUMNFLAGS_ISROWID | Поставщик задает DBCOLUMNFLAGS_ISROWID, если столбец содержит постоянный идентификатор строки, который не может быть записан и не имеет значимого значения, за исключением идентификатора строки. |
IsUnique | DBCOLUMN_ISUNIQUE | VARIANT_TRUE: две строки в базовой таблице, возвращаемой в BaseTableName, не могут иметь одинаковое значение в этом столбце. IsUnique гарантированно будет VARIANT_TRUE, если столбец представляет ключ сам по себе или имеется ограничение типа UNIQUE, которое применяется только к этому столбцу. VARIANT_FALSE. Столбец может содержать повторяющиеся значения в базовой таблице. Значение по умолчанию для этого столбца — VARIANT_FALSE. |
IsKey | DBCOLUMN_KEYCOLUMN | VARIANT_TRUE. Столбец является одним из наборов столбцов в наборе строк, которые, вместе взятые, однозначно идентифицируют строку. Набор столбцов со значением IsKey VARIANT_TRUE должен однозначно идентифицировать строку в наборе строк. Нет необходимости, чтобы этот набор столбцов являлся минимальным. Этот набор столбцов может быть создан на базе первичного ключа базовой таблицы, уникального ограничения или уникального индекса. VARIANT_FALSE. Столбец не требуется для уникальной идентификации строки. |
IsAutoIncrement | DBCOLUMN_ISAUTOINCREMENT | VARIANT_TRUE. Столбец присваивает значения новым строкам с фиксированным шагом приращения. VARIANT_FALSE. Столбцу не присваиваются значения новым строкам с фиксированным шагом приращения. Значение по умолчанию для этого столбца — VARIANT_FALSE. |
BaseSchemaName | DBCOLUMN_BASESCHEMANAME | Имя схемы в хранилище данных, содержащем столбец. Значение NULL, если невозможно определить имя базовой схемы. Значение по умолчанию этого столбца — null. |
BaseCatalogName | DBCOLUMN_BASECATALOGNAME | Имя каталога в хранилище данных, содержащем столбец. Значение NULL, если невозможно определить имя базового каталога. Значение по умолчанию этого столбца — null. |
BaseTableName | DBCOLUMN_BASETABLENAME | Имя таблицы или представления в хранилище данных, содержащем столбец. Значение NULL, если невозможно определить имя базовой таблицы. Значение по умолчанию этого столбца — null. |
BaseColumnName | DBCOLUMN_BASECOLUMNNAME | Имя столбца в хранилище данных. Это может отличаться от имени столбца, возвращаемого в столбце ColumnName, если использовался псевдоним. Значение NULL, если не удается определить имя базового столбца или столбец набора строк является производным, но не идентичным столбцу в хранилище данных. Значение по умолчанию этого столбца — null. |
Примечание
Чтобы убедиться, что столбцы метаданных возвращают правильные сведения, необходимо вызвать ExecuteReader с параметром behavior
, равным KeyInfo
. В противном случае некоторые столбцы в таблице схемы могут возвращать данные по умолчанию, null или неверные данные.