Partilhar via


Coleções de esquemas comuns

As coleções de esquema comuns são as coleções de esquema que são implementadas por cada um dos provedores gerenciados do .NET Framework. Você pode consultar um provedor gerenciado do .NET Framework para determinar a lista de coleções de esquema suportadas chamando o método GetSchema sem argumentos ou com o nome da coleção de esquema "MetaDataCollections". Isso retornará uma DataTable com uma lista das coleções de esquema suportadas, o número de restrições que cada uma delas suporta e o número de partes de identificador que elas usam. Essas coleções descrevem todas as colunas necessárias. Os fornecedores são livres de adicionar colunas adicionais, se assim o desejarem. Por exemplo, SqlClient e OracleClient adicione ParameterName à coleção de restrições.

Se um provedor não conseguir determinar o valor de uma coluna necessária, ele retornará null.

Para obter mais informações sobre como usar os métodos GetSchema , consulte GetSchema e coleções de esquema.

MetaDataCollections

Essa coleção de esquema expõe informações sobre todas as coleções de esquema suportadas pelo provedor gerenciado do .NET Framework que é usado atualmente para se conectar ao banco de dados.

ColumnName DataType Description
CollectionName string O nome da coleção a ser passada para o método GetSchema para retornar a coleção.
Número deRestrições número inteiro O número de restrições que podem ser especificadas para a coleção.
NumberOfIdentifierParts número inteiro O número de partes no identificador composto/nome do objeto de banco de dados. Por exemplo, no SQL Server, isso seria 3 para tabelas e 4 para colunas. Em Oracle, seria 2 para tabelas e 3 para colunas.

DataSourceInformation

Essa coleção de esquema expõe informações sobre a fonte de dados à qual o provedor gerenciado do .NET Framework está conectado no momento.

ColumnName DataType Description
CompositeIdentifierSeparatorPattern string A expressão regular para corresponder aos separadores compostos em um identificador composto. Por exemplo, "\." (para SQL Server) ou "@|\." (para Oracle).

Um identificador composto é normalmente o que é usado para um nome de objeto de banco de dados, por exemplo: pubs.dbo.authors ou pubs@dbo.authors.

Para o SQL Server, use a expressão regular "\.". Para OracleClient, use "@|\.".

Para ODBC, use o Catalog_name_separator.

Para OLE DB, use DBLITERAL_CATALOG_SEPARATOR ou DBLITERAL_SCHEMA_SEPARATOR.
DataSourceProductName string O nome do produto acessado pelo provedor, como "Oracle" ou "SQLServer".
DataSourceProductVersion string Indica a versão do produto acessada pelo provedor, no formato nativo de fontes de dados e não no formato Microsoft.

Em alguns casos, DataSourceProductVersion e DataSourceProductVersionNormalized terão o mesmo valor. No caso de OLE DB e ODBC, eles serão sempre os mesmos, pois são mapeados para a mesma chamada de função na API nativa subjacente.
DataSourceProductVersionNormalized string Uma versão normalizada para a fonte de dados, de modo que possa ser comparada com String.Compare()o . O formato disso é consistente para todas as versões do provedor para impedir que a versão 10 seja classificada entre a versão 1 e a versão 2.

Por exemplo, o provedor Oracle usa um formato de "nn.nn.nn.nn.nn" para sua versão normalizada, o que faz com que uma fonte de dados Oracle 8i retorne "08.01.07.04.01". O SQL Server usa o formato típico da Microsoft "nn.nn.nnnn".

Em alguns casos, DataSourceProductVersion e DataSourceProductVersionNormalized terão o mesmo valor. No caso de OLE DB e ODBC, eles serão sempre os mesmos, pois são mapeados para a mesma chamada de função na API nativa subjacente.
GroupByBehavior GroupByBehavior Especifica a relação entre as colunas em uma cláusula GROUP BY e as colunas não agregadas na lista de seleção.
IdentifierPattern string Uma expressão regular que corresponde a um identificador e tem um valor de correspondência do identificador. Por exemplo, "[A-Za-z0-9_#$]".
IdentifierCase IdentifierCase Indica se identificadores não cotados são tratados como diferenciadores de maiúsculas e minúsculas ou não.
OrderByColumnsInSelect booleano Especifica se as colunas em uma cláusula ORDER BY devem estar na lista de seleção. Um valor true indica que eles precisam estar na lista de seleção, um valor de false indica que eles não precisam estar na lista de seleção.
ParameterMarkerFormat string Uma cadeia de caracteres de formato que representa como formatar um parâmetro.

Se os parâmetros nomeados forem suportados pela fonte de dados, o primeiro espaço reservado nessa cadeia de caracteres deverá ser onde o nome do parâmetro deve ser formatado.

Por exemplo, se a fonte de dados espera que os parâmetros sejam nomeados e prefixados com um ':', isso seria ":{0}". Ao formatar isso com um nome de parâmetro de "p1", a cadeia de caracteres resultante é ":p 1".

Se a fonte de dados espera que os parâmetros sejam prefixados com o '@', mas os nomes já os incluem, isso seria '{0}', e o resultado da formatação de um parâmetro chamado "@p1" seria simplesmente "@p1".

Para fontes de dados que não esperam parâmetros nomeados e esperam o uso do caractere '?', a cadeia de caracteres de formato pode ser especificada como simplesmente '?', o que ignoraria o nome do parâmetro. Para OLE DB retornamos '?'.
ParameterMarkerPattern string Uma expressão regular que corresponde a um marcador de parâmetro. Ele terá um valor de correspondência do nome do parâmetro, se houver.

Por exemplo, se os parâmetros nomeados forem suportados com um caractere de entrada '@' que será incluído no nome do parâmetro, isso seria: "(@[A-Za-z0-9_$#]*)".

No entanto, se parâmetros nomeados são suportados com um ':' como o caractere de entrada e não faz parte do nome do parâmetro, isso seria: ":([A-Za-z0-9_$#]*)".

Claro, se a fonte de dados não suporta parâmetros nomeados, isso seria simplesmente "?".
ParameterNameMaxLength número inteiro O comprimento máximo de um nome de parâmetro em caracteres. O Visual Studio espera que, se houver suporte para nomes de parâmetros, o valor mínimo para o comprimento máximo é de 30 caracteres.

Se a fonte de dados não oferecer suporte a parâmetros nomeados, essa propriedade retornará zero.
ParameterNamePattern string Uma expressão regular que corresponde aos nomes de parâmetros válidos. Diferentes fontes de dados têm regras diferentes em relação aos caracteres que podem ser usados para nomes de parâmetros.

O Visual Studio espera que, se houver suporte para nomes de parâmetros, os caracteres "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" são o conjunto mínimo suportado de caracteres válidos para nomes de parâmetros.
QuotedIdentifierPattern string Uma expressão regular que corresponde a um identificador entre aspas e tem um valor de correspondência do próprio identificador sem as aspas. Por exemplo, se a fonte de dados usasse aspas duplas para identificar identificadores entre aspas, isso seria: "(([^\"]|\"\")*)".
QuotedIdentifierCase IdentifierCase Indica se os identificadores cotados são tratados como diferenciadores de maiúsculas de minúsculas ou não.
StatementSeparatorPattern string Uma expressão regular que corresponde ao separador de instrução.
StringLiteralPattern string Uma expressão regular que corresponde a um literal de cadeia de caracteres e tem um valor de correspondência do próprio literal. Por exemplo, se a fonte de dados usasse aspas simples para identificar cadeias de caracteres, isso seria: "('([^']|'') *')"'
SupportedJoinOperators SupportedJoinOperators Especifica quais tipos de instruções de junção SQL são suportados pela fonte de dados.

Tipos de dados

Essa coleção de esquema expõe informações sobre os tipos de dados suportados pelo banco de dados ao qual o provedor gerenciado do .NET Framework está conectado no momento.

ColumnName DataType Description
TypeName string O nome do tipo de dados específico do provedor.
ProviderDbType número inteiro O valor de tipo específico do provedor que deve ser usado ao especificar o tipo de um parâmetro. Por exemplo, SqlDbType.Money ou OracleType.Blob.
Tamanho da Coluna long O comprimento de uma coluna ou parâmetro não numérico refere-se ao máximo ou ao comprimento definido para este tipo pelo provedor.

Para dados de caracteres, este é o comprimento máximo ou definido em unidades, definido pela fonte de dados. A Oracle tem o conceito de especificar um comprimento e, em seguida, especificar o tamanho real do armazenamento para alguns tipos de dados de caracteres. Isso define apenas o comprimento em unidades para Oracle.

Para tipos de dados de data-hora, este é o comprimento da representação de cadeia de caracteres (assumindo a precisão máxima permitida do componente de segundos fracionários).

Se o tipo de dados for numérico, este é o limite superior na precisão máxima do tipo de dados.
CreateFormat string Formatar cadeia de caracteres que representa como adicionar essa coluna a uma instrução de definição de dados, como CREATE TABLE. Cada elemento na matriz CreateParameter deve ser representado por um "marcador de parâmetro" na cadeia de caracteres de formato.

Por exemplo, o tipo de dados SQL DECIMAL precisa de uma precisão e uma escala. Neste caso, a string de formato seria "DECIMAL({0},{1})".
CreateParameters string Os parâmetros de criação que devem ser especificados ao criar uma coluna desse tipo de dados. Cada parâmetro de criação é listado na cadeia de caracteres, separados por uma vírgula na ordem em que devem ser fornecidos.

Por exemplo, o tipo de dados SQL DECIMAL precisa de uma precisão e uma escala. Neste caso, os parâmetros de criação devem conter a string "precision, scale".

Em um comando de texto para criar uma coluna DECIMAL com uma precisão de 10 e uma escala de 2, o valor da coluna CreateFormat pode ser DECIMAL({0},{1})" e a especificação de tipo completa seria DECIMAL(10,2).
DataType string O nome do tipo .NET Framework do tipo de dados.
IsAutoincrementable booleano true—Os valores desse tipo de dados podem ser incrementados automaticamente.

false—Os valores desse tipo de dados podem não ser incrementados automaticamente.

Observe que isso apenas indica se uma coluna desse tipo de dados pode ser incrementada automaticamente, não que todas as colunas desse tipo são incrementação automática.
IsBestMatch booleano true—O tipo de dados é a melhor correspondência entre todos os tipos de dados no armazenamento de dados e o tipo de dados do .NET Framework indicado pelo valor na coluna DataType.

false—O tipo de dados não é a melhor correspondência.

Para cada conjunto de linhas em que o valor da coluna DataType é o mesmo, a coluna IsBestMatch é definida como true em apenas uma linha.
IsCaseSensitive booleano true—O tipo de dados é um tipo de caractere e diferencia maiúsculas de minúsculas.

false—O tipo de dados não é um tipo de caractere ou não diferencia maiúsculas de minúsculas.
IsFixedLength booleano true—As colunas desse tipo de dados criadas pela linguagem de definição de dados (DDL) terão comprimento fixo.

false—As colunas desse tipo de dados criadas pela DDL terão comprimento variável.

DBNull.Value—Não se sabe se o provedor mapeará esse campo com uma coluna de comprimento fixo ou variável.
IsFixedPrecisionScale booleano true—O tipo de dados tem uma precisão e escala fixas.

false—O tipo de dados não tem uma precisão e escala fixas.
IsLong booleano true—O tipo de dados contém dados muito longos; A definição de dados muito longos é específica do fornecedor.

false—O tipo de dados não contém dados muito longos.
IsNullable booleano true—O tipo de dados é anulável.

false—O tipo de dados não é anulável.

DBNull.Value—Não se sabe se o tipo de dados é anulável.
IsSearchable booleano true—O tipo de dados pode ser usado em uma cláusula WHERE com qualquer operador, exceto o predicado LIKE.

false—O tipo de dados não pode ser usado em uma cláusula WHERE com nenhum operador, exceto o predicado LIKE.
IsSearchableWithLike booleano true—O tipo de dados pode ser usado com o predicado LIKE

false—O tipo de dados não pode ser usado com o predicado LIKE.
IsUnsigned booleano true—O tipo de dados não está assinado.

false—O tipo de dados está assinado.

DBNull.Value — Não aplicável ao tipo de dados.
Escala Máxima curtas Se o indicador de tipo for um tipo numérico, este é o número máximo de dígitos permitido à direita da vírgula decimal. Caso contrário, este é DBNull.Value.
Escala mínima curtas Se o indicador de tipo for um tipo numérico, este é o número mínimo de dígitos permitido à direita da vírgula decimal. Caso contrário, este é DBNull.Value.
IsConcurrencyType booleano true – o tipo de dados é atualizado pelo banco de dados sempre que a linha é alterada e o valor da coluna é diferente de todos os valores anteriores

false – o tipo de dados é atualizado pelo banco de dados toda vez que a linha é alterada

DBNull.Value – o banco de dados não suporta esse tipo de dados
IsLiteralSupported booleano true – o tipo de dados pode ser expresso como um literal

false – o tipo de dados não pode ser expresso como um literal
LiteralPrefix string O prefixo aplicado a um determinado literal.
Sufixo literal string O sufixo aplicado a um determinado literal.
NativeDataType String NativeDataType é uma coluna específica do OLE DB para expor o tipo OLE DB do tipo de dados.

Restrições

Esta coleção de esquema expôs informações sobre as restrições suportadas pelo provedor gerenciado do .NET Framework que é usado atualmente para se conectar ao banco de dados.

ColumnName DataType Description
CollectionName string O nome da coleção à qual essas restrições se aplicam.
RestrictionName string O nome da restrição na coleção.
RestrictionDefault string Ignorado.
Número de restrição número inteiro A localização real nas restrições de coleções em que esta restrição específica se enquadra.

Palavras Reservadas

Essa coleção de esquema expõe informações sobre as palavras reservadas pelo banco de dados ao qual o provedor gerenciado do .NET Framework está conectado no momento.

ColumnName DataType Description
Palavra Reservada string Palavra reservada específica do provedor.

Consulte também