OleDbDataReader.GetSchemaTable Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un objeto DataTable que describe los metadatos de columna del 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
Devoluciones
DataTable que describe los metadatos de columna.
Implementaciones
Excepciones
La clase OleDbDataReader está cerrada.
Comentarios
El GetSchemaTable método se asigna al método IColumnsRowset::GetColumnsRowset de OLE DB y devuelve metadatos sobre cada columna en el orden siguiente:
Columna DataReader | Identificador de columna de OLE DB | Descripción |
---|---|---|
ColumnName | DBCOLUMN_NAME | Nombre de la columna; esto podría no ser único. Si no se puede determinar, se devuelve un valor null. Este nombre refleja siempre el cambio de nombre más reciente de la columna en el texto de la vista o el comando actual. |
ColumnOrdinal | DBCOLUMN_NUMBER | Ordinal basado en cero de la columna. Esta columna no puede contener un valor. |
ColumnSize | DBCOLUMN_COLUMNSIZE | Longitud máxima permitida para un valor de la columna. Para las columnas que usan un tipo de datos de longitud fija, este es el tamaño del tipo de datos. |
NumericPrecision | DBCOLUMN_PRECISION | Si DbType es un tipo de datos numérico, se trata de la precisión máxima de la columna. La precisión de las columnas con un tipo de datos de DBTYPE_DECIMAL o DBTYPE_NUMERIC depende de la definición de la columna. Si DbType no es un tipo de datos numérico, se trata de un valor NULL. |
NumericScale | DBCOLUMN_SCALE | Si DbType es DBTYPE_DECIMAL o DBTYPE_NUMERIC, este es el número de dígitos a la derecha del separador decimal. De lo contrario, se trata de un valor NULL. |
DataType | Ninguno | Se asigna al tipo de .NET Framework de la columna. |
ProviderType | DBCOLUMN_TYPE | Indicador del tipo de datos de la columna. Si el tipo de datos de la columna varía de fila a fila, debe ser DBTYPE_VARIANT. Esta columna no puede contener un valor. |
IsLong | DBCOLUMNFLAGS_ISLONG | El proveedor establece DBCOLUMNFLAGS_ISLONG si la columna contiene un objeto long binario (BLOB) que contiene datos muy largos. La definición de la cantidad de datos es específica del proveedor. El valor de esta marca corresponde al valor de la columna IS_LONG del conjunto de filas PROVIDER_TYPES para el tipo de datos. |
AllowDBNull | DBCOLUMNFLAGS_ISNULLABLE | El proveedor establece DBCOLUMNFLAGS_ISNULLABLE si el consumidor puede establecer la columna en un valor NULL o si el proveedor no puede determinar si el consumidor puede establecer la columna en un valor NULL. Una columna puede contener valores null, aunque no se pueda establecer en un valor null. |
IsReadOnly | DBCOLUMNFLAGS_WRITE |
true si no se puede modificar la columna; de lo contrario, false . Se supone que la columna se puede escribir si el proveedor ha establecido la marca DBCOLUMNFLAGS_WRITE o DBCOLUMNFLAGS_WRITEUNKNOWN. |
IsRowVersion | DBCOLUMNFLAGS_ISROWID | El proveedor establece DBCOLUMNFLAGS_ISROWID si la columna contiene un identificador de fila persistente en el que no se puede escribir y no tiene ningún valor significativo excepto para identificar la fila. |
IsUnique | DBCOLUMN_ISUNIQUE | VARIANT_TRUE: no se pueden tener el mismo valor en esta columna dos filas de la tabla base devuelta en BaseTableName. Se garantiza que IsUnique es VARIANT_TRUE si la columna representa una clave por sí misma o si hay una restricción de tipo UNIQUE que solo se aplica a esta columna. VARIANT_FALSE: la columna puede contener valores duplicados en la tabla base. El valor predeterminado de esta columna es VARIANT_FALSE. |
IsKey | DBCOLUMN_KEYCOLUMN | VARIANT_TRUE: la columna es uno de un conjunto de columnas del conjunto de filas que, tomados juntos, identifican de forma única la fila. El conjunto de columnas con IsKey establecido en VARIANT_TRUE debe identificar de forma única una fila en el conjunto de filas. No es necesario que este conjunto de columnas sea un conjunto mínimo de columnas. Este conjunto de columnas puede generarse a partir de una clave principal de la tabla base, una restricción única o un índice único. VARIANT_FALSE: la columna no es necesaria para identificar de forma única la fila. |
IsAutoIncrement | DBCOLUMN_ISAUTOINCREMENT | VARIANT_TRUE: la columna asigna valores a nuevas filas en incrementos fijos. VARIANT_FALSE: la columna no asigna valores a nuevas filas en incrementos fijos. El valor predeterminado de esta columna es VARIANT_FALSE. |
BaseSchemaName | DBCOLUMN_BASESCHEMANAME | Nombre del esquema del almacén de datos que contiene la columna. Un valor null si no se puede determinar el nombre del esquema base. El valor predeterminado de esta columna es un valor NULL. |
BaseCatalogName | DBCOLUMN_BASECATALOGNAME | Nombre del catálogo del almacén de datos que contiene la columna. Valor null, si no se puede determinar el nombre del catálogo base. El valor predeterminado de esta columna es un valor NULL. |
BaseTableName | DBCOLUMN_BASETABLENAME | Nombre de la tabla o vista del almacén de datos que contiene la columna. Valor null, si no se puede determinar el nombre de la tabla base. El valor predeterminado de esta columna es un valor NULL. |
BaseColumnName | DBCOLUMN_BASECOLUMNNAME | Nombre de la columna en el almacén de datos. Esto puede ser diferente del nombre de columna devuelto en la columna ColumnName si se usó un alias. Valor NULL si no se puede determinar el nombre de la columna base o si la columna del conjunto de filas se deriva, pero no es idéntica a, una columna del almacén de datos. El valor predeterminado de esta columna es un valor NULL. |
Nota
Para asegurarse de que las columnas de metadatos devuelven la información correcta, debe llamar a ExecuteReader con el behavior
parámetro establecido en KeyInfo
. De lo contrario, algunas de las columnas de la tabla de esquema pueden devolver datos predeterminados, null o incorrectos.