OleDbDataReader.GetSchemaTable Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna um DataTable que descreve os metadados de coluna do OleDbDataReader.
public:
virtual System::Data::DataTable ^ GetSchemaTable();
public:
override System::Data::DataTable ^ GetSchemaTable();
public System.Data.DataTable GetSchemaTable();
public override System.Data.DataTable GetSchemaTable();
abstract member GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Function GetSchemaTable () As DataTable
Public Overrides Function GetSchemaTable () As DataTable
Retornos
Um DataTable que descreve os metadados da coluna.
Implementações
Exceções
O OleDbDataReader está fechado.
Comentários
O GetSchemaTable método mapeia para o método OLE DB IColumnsRowset::GetColumnsRowset e retorna metadados sobre cada coluna na seguinte ordem:
| Coluna DataReader | ID da coluna OLE DB | Descrição |
|---|---|---|
| NomeDaColuna | DBCOLUMN_NAME | O nome da coluna; isso pode não ser exclusivo. Se isso não puder ser determinado, um valor nulo será retornado. Esse nome sempre reflete a renomeação mais recente da coluna no texto de comando ou exibição atual. |
| Ordinal de coluna | DBCOLUMN_NUMBER | O ordinal baseado em zero da coluna. Esta coluna não pode conter um valor nulo. |
| ColumnSize | DBCOLUMN_COLUMNSIZE | O comprimento máximo possível de um valor na coluna. Para colunas que usam um tipo de dados de comprimento fixo, esse é o tamanho do tipo de dados. |
| Numericprecision | DBCOLUMN_PRECISION | Se DbType for um tipo de dados numérico, essa será a precisão máxima da coluna. A precisão de colunas com um tipo de dados de DBTYPE_DECIMAL ou DBTYPE_NUMERIC depende da definição da coluna. Se DbType não for um tipo de dados numérico, esse será um valor nulo. |
| Numericscale | DBCOLUMN_SCALE | Se DbType for DBTYPE_DECIMAL ou DBTYPE_NUMERIC, esse será o número de dígitos à direita do ponto decimal. Caso contrário, esse é um valor nulo. |
| Tipo de dados | None | Mapeia para o tipo .NET da coluna. |
| ProviderType | DBCOLUMN_TYPE | O indicador do tipo de dados da coluna. Se o tipo de dados da coluna variar de linha para linha, isso deverá ser DBTYPE_VARIANT. Esta coluna não pode conter um valor nulo. |
| IsLong | DBCOLUMNFLAGS_ISLONG | O provedor define DBCOLUMNFLAGS_ISLONG se a coluna contiver um BLOB (Objeto Binário Longo) que contenha dados muito longos. A definição de dados muito longos é específica do provedor. A configuração desse sinalizador corresponde ao valor da coluna IS_LONG no conjunto de linhas PROVIDER_TYPES para o tipo de dados. |
| Allowdbnull | DBCOLUMNFLAGS_ISNULLABLE | O provedor define DBCOLUMNFLAGS_ISNULLABLE se o consumidor pode definir a coluna como um valor nulo ou se o provedor não pode determinar se o consumidor pode definir a coluna como um valor nulo. Uma coluna pode conter valores nulos, mesmo que não possa ser definida como um valor nulo. |
| IsReadOnly | DBCOLUMNFLAGS_WRITE |
true se a coluna não puder ser modificada; caso contrário false. A coluna será considerada gravável se o provedor tiver definido o sinalizador DBCOLUMNFLAGS_WRITE ou DBCOLUMNFLAGS_WRITEUNKNOWN. |
| IsRowVersion | DBCOLUMNFLAGS_ISROWID | O provedor define DBCOLUMNFLAGS_ISROWID se a coluna contiver um identificador de linha persistente que não pode ser gravado e não tiver nenhum valor significativo, exceto para identificar a linha. |
| IsUnique | DBCOLUMN_ISUNIQUE | VARIANT_TRUE: Não há duas linhas na tabela base, a tabela retornada em BaseTableName pode ter o mesmo valor nesta coluna. É garantido que IsUnique será VARIANT_TRUE se a coluna representar uma chave por si só ou se houver uma restrição do tipo UNIQUE que se aplique somente a esta coluna. VARIANT_FALSE: a coluna pode conter valores duplicados na tabela base. O padrão desta coluna é VARIANT_FALSE. |
| Iskey | DBCOLUMN_KEYCOLUMN | VARIANT_TRUE: a coluna é uma de um conjunto de colunas no conjunto de linhas que, juntas, identificam exclusivamente a linha. O conjunto de colunas com IsKey definido como VARIANT_TRUE deve identificar exclusivamente uma linha no conjunto de linhas. Não há nenhum requisito de que esse conjunto de colunas seja um conjunto mínimo de colunas. Esse conjunto de colunas pode ser gerado a partir de uma chave primária da tabela base, uma restrição exclusiva ou um índice exclusivo. VARIANT_FALSE: a coluna não é necessária para identificar exclusivamente a linha. |
| IsAutoIncrement | DBCOLUMN_ISAUTOINCREMENT | VARIANT_TRUE: a coluna atribui valores a novas linhas em incrementos fixos. VARIANT_FALSE: a coluna não atribui valores a novas linhas em incrementos fixos. O padrão desta coluna é VARIANT_FALSE. |
| BaseSchemaName | DBCOLUMN_BASESCHEMANAME | O nome do esquema no armazenamento de dados que contém a coluna. Um valor nulo se o nome do esquema base não puder ser determinado. O padrão desta coluna é um valor nulo. |
| BaseCatalogName | DBCOLUMN_BASECATALOGNAME | O nome do catálogo no repositório de dados que contém a coluna. Um valor nulo se o nome do catálogo base não puder ser determinado. O padrão desta coluna é um valor nulo. |
| BaseTableName | DBCOLUMN_BASETABLENAME | O nome da tabela ou exibição no repositório de dados que contém a coluna. Um valor nulo se o nome da tabela base não puder ser determinado. O padrão desta coluna é um valor nulo. |
| BaseColumnName | DBCOLUMN_BASECOLUMNNAME | O nome da coluna no armazenamento de dados. Isso pode ser diferente do nome da coluna retornado na coluna ColumnName se um alias for usado. Um valor nulo se o nome da coluna base não puder ser determinado ou se a coluna de conjunto de linhas for derivada, mas não idêntica a, uma coluna no armazenamento de dados. O padrão desta coluna é um valor nulo. |
Note
Para garantir que as colunas de metadados retornem as informações corretas, você deve chamar ExecuteReader com o behavior parâmetro definido como KeyInfo. Caso contrário, algumas das colunas na tabela de esquema podem retornar dados padrão, nulos ou incorretos.