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 requeridas. 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.

NomeDaColuna Tipo de Dados Descrição
Nome da Coleção corda O nome da coleção a ser passada para o método GetSchema para retornar a coleção.
Número deRestrições Int O número de restrições que podem ser especificadas para a coleção.
NúmeroDePartesDoIdentificador Int O número de partes no nome do objeto do banco de dados/identificador composto. Por exemplo, no SQL Server, isso seria 3 para tabelas e 4 para colunas. Em Oracle, seria 2 para tabelas e 3 para colunas.

Informações da Fonte de Dados

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.

NomeDaColuna Tipo de Dados Descrição
PadrãoSeparadorDeIdentificadorComposto corda A expressão regular para corresponder aos separadores compostos num 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 o OracleClient, utilize os caracteres "@|\.".

Para ODBC, use o Catalog_name_separator.

Para OLE DB, use DBLITERAL_CATALOG_SEPARATOR ou DBLITERAL_SCHEMA_SEPARATOR.
NomeDoProdutoDaFonteDeDados corda O nome do produto acessado pelo provedor, como "Oracle" ou "SQLServer".
VersãoDoProdutoDaFonteDeDados corda 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.
VersãoNormalizadaDoProdutoDaFonteDeDados corda Uma versão normalizada para a fonte de dados, de modo que possa ser comparada com String.Compare(). 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.
PadrãoDeIdentificador corda Uma expressão regular que corresponde a um identificador e tem um valor de correspondência do identificador. Por exemplo, "[A-Za-z0-9_#$]".
Formato de Identificador IdentifierCase Indica se identificadores não cotados são tratados como sensíveis a maiúsculas e minúsculas ou não.
OrdenarPorColunasNaSeleção Bool 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.
FormatoDoMarcadorDeParâmetro corda 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 '?'.
PadrãoDeMarcadorDeParâmetro corda 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 Int 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 corda 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.
PadrãoDeIdentificadorComAspas corda 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: "(([^\"]|\"\")*)".
CasoIdentificadorEntreAspas IdentifierCase Indica se os identificadores entre aspas são tratados como sensíveis a maiúsculas e minúsculas ou não.
PadrãoSeparadorDeDeclarações corda Uma expressão regular que corresponde ao separador de declaração.
StringLiteralPattern corda 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: "('([^']|'')*')"'
OperadoresDeJunçãoSuportados 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.

NomeDaColuna Tipo de Dados Descrição
NomeDoTipo corda O nome do tipo de dados específico do provedor.
ProviderDbType Int 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 longo 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 corda 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})".
CriarParâmetros corda 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 cadeia de caracteres "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).
Tipo de Dados corda O nome do tipo .NET Framework do tipo de dados.
ÉAutoIncrementável Bool 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 auto-incrementável, não que todas as colunas desse tipo sejam auto-incrementáveis.
IsBestMatch Bool true—O tipo de dados é a melhor correspondência possível entre todos os tipos de dados na base de dados e o tipo de dados do .NET Framework indicado pelo valor na coluna DataType.

falso—O tipo de dados não é o mais adequado.

Para cada conjunto de linhas em que o valor da coluna DataType é o mesmo, a coluna IsBestMatch é definida como true em apenas uma linha.
ÉSensívelACaso Bool 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 Bool 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.
PrecisãoEscalaFixada Bool 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 Bool 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 Bool 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 Bool 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.
ÉPesquisávelComLike Bool 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 Bool 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 curto 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 curto 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.
ÉTipoConcurrência Bool 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
ÉLiteralSuportado Bool verdadeiro – o tipo de dados pode ser expresso como um literal

falso – o tipo de dados não pode ser expresso como um valor literal
LiteralPrefix corda O prefixo aplicado a um determinado literal.
Sufixo literal corda O sufixo aplicado a um literal específico.
NativeDataType Cordão 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.

NomeDaColuna Tipo de Dados Descrição
Nome da Coleção corda O nome da coleção à qual essas restrições se aplicam.
Nome de Restrição corda O nome da restrição na coleção.
RestriçãoPadrão corda Ignorado.
Número de restrição Int 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.

NomeDaColuna Tipo de Dados Descrição
Palavra-chave reservada corda Palavra reservada específica do provedor.

Ver também