Partilhar via


Coleções de esquemas comuns

Aplica-se a: .NET Framework .NET .NET Standard

Baixar ADO.NET

As coleções de esquemas comuns são as coleções de esquemas implementadas por cada um dos fornecedores geridos do .NET. Pode consultar um fornecedor .NET gerido para determinar a lista de coleções de esquemas suportadas chamando o método GetSchema sem argumentos, ou com o nome da coleção de esquemas "MetaDataCollections". Este método devolverá a DataTable com uma lista das coleções de esquemas suportadas, o número de restrições que cada uma suporta e o número de partes identificadoras que utilizam. Essas coleções descrevem todas as colunas requeridas. Os fornecedores são livres de adicionar mais colunas, se assim o desejarem. Por exemplo, o Microsoft SqlClient Data Provider para SQL Server acrescenta ParameterName à coleção de restrições.

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

Para mais informações sobre a utilização dos GetSchema métodos, consulte GetSchema e Schema Collections.

MetaDataCollections

Esta coleção expõe informações sobre todas as coleções de esquemas suportadas pelo fornecedor que estão atualmente a ser usadas para se ligar à base de dados.

ColumnName Tipo de Dados Description
Nome da Coleção string O nome da coleção a ser passado 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, o valor seria 3 para tabelas e 4 para colunas.

Informações da Fonte de Dados

Esta coleção de esquemas expõe informações sobre a fonte de dados à qual o Microsoft SqlClient Data Provider para SQL Server está atualmente ligado.

ColumnName Tipo de Dados Description
PadrãoSeparadorDeIdentificadorComposto string A expressão regular para corresponder aos separadores compostos num identificador composto. Por exemplo, \. (para SQL Server).

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

Para SQL Server, use a expressão regular \..
NomeDoProdutoDaFonteDeDados string O nome do produto acedido pelo fornecedor, como "SQLServer".
VersãoDoProdutoDaFonteDeDados 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 mesmo valor.
VersãoNormalizadaDoProdutoDaFonteDeDados string Uma versão normalizada para a fonte de dados, de modo que possa ser comparada com String.Compare(). Este formato é consistente para todas as versões do fornecedor, para evitar que a versão 10 seja ordenada entre a versão 1 e a versão 2.

Por exemplo, o SQL Server utiliza o formato típico da Microsoft nn.nn.nnnn .

Em alguns casos, DataSourceProductVersion e DataSourceProductVersionNormalized terá o mesmo valor.
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 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_#$].
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 de true indica que são obrigatórios na lista de seleção. Um valor de false indica que não é obrigatório que estejam na lista de seleção.
FormatoDoMarcadorDeParâmetro 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 : , esta cadeia seria :{0}. Ao formatar este parâmetro com o nome da p1 cadeia resultante é :p1.

Se a fonte de dados espera que os parâmetros sejam precedidos pelo @, mas os nomes já os incluem, esta cadeia seria {0}, e o resultado da formatação de um parâmetro chamado @p1 seria @p1.

Para fontes de dados que não esperam parâmetros nomeados mas esperam o uso do carácter ?, a string de formato pode ser especificada como ?, o que ignoraria o nome do parâmetro.
PadrãoDeMarcadorDeParâmetro 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 introdução que será incluído no nome do parâmetro, este padrão seria: (\@[A-Za-z0-9_$#]*).

No entanto, se parâmetros nomeados forem suportados com a : como caractere de entrada e não fizer parte do nome do parâmetro, este padrão seria: :([A-Za-z0-9_$#]\*).

Se a fonte de dados não suportar parâmetros nomeados, este padrão seria ?.
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 suportar parâmetros nomeados, esta propriedade devolve zero.
ParameterNamePattern string Uma expressão regular que corresponde aos nomes de parâmetros válidos. Diferentes fontes de dados têm regras distintas sobre os caracteres que podem ser usados para nomes de parâmetros.

O Visual Studio espera que, se os nomes dos parâmetros forem suportados, os caracteres \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} sejam o conjunto mínimo suportado de caracteres válidos para nomes de parâmetros.
PadrãoDeIdentificadorComAspas 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, este padrão seria o seguinte: (([^\\"]\|\\"\\")*).
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 string Uma expressão regular que corresponde ao separador de declaraçã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, este padrão seria: ('([^']\|'')*')'
OperadoresDeJunçãoSuportados SupportedJoinOperators Especifica quais tipos de instruções de junção SQL são suportados pela fonte de dados.

Tipos de dados

Esta coleção de esquemas expõe informações sobre os tipos de dados suportados pela base de dados à qual o fornecedor está atualmente ligado.

ColumnName Tipo de Dados Description
NomeDoTipo string 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.
Tamanho da Coluna long O comprimento de uma coluna ou parâmetro não numérico. Este valor refere-se ao máximo ou ao comprimento definido para este tipo pelo fornecedor.

Para dados de caracteres, este valor é o comprimento máximo ou definido em unidades, definido pela fonte de dados.

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

Se o tipo de dado for numérico, este valor é o limite superior da precisão máxima do tipo de dado.
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 no CreateParameter array deve ser representado por um "marcador de parâmetro" na cadeia de formato.

Por exemplo, o tipo de dados SQL DECIMAL precisa de uma precisão e uma escala. Neste caso, a cadeia de formatos seria DECIMAL({0},{1}).
CriarParâmetros 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 está listado na cadeia, separado por uma vírgula na ordem em que deve ser fornecido.

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

Num comando de texto para criar uma coluna DECIMAL com precisão de 10 e escala de 2, o valor da coluna CreateFormat pode ser DECIMAL({0},{1}) e a especificação completa do tipo seria DECIMAL(10,2).
Tipo de Dados string O nome do tipo .NET do tipo de dados.
ÉAutoIncrementável bool true - Os valores deste tipo de dados podem estar a incrementar-se automaticamente.

false - Os valores deste tipo de dado podem não estar a incrementar automaticamente.

Esta propriedade indica apenas se uma coluna deste tipo de dados pode estar a fazer auto-incremento, não que todas as colunas deste tipo estejam a fazer auto-incremento.
IsBestMatch bool true - O tipo de dados é a melhor correspondência entre todos os tipos de dados no armazenamento de dados e o tipo de dados .NET indicado pelo valor na DataType coluna.

false - O tipo de dado não corresponde adequadamente.

Para cada conjunto de linhas em que o valor na coluna DataType é o mesmo, a coluna IsBestMatch é definida como true em apenas uma linha.
ÉSensívelACaso bool true - O tipo de dado é um tipo de carácter e distingue maiúsculas e minúsculas.

false - O tipo de dado não é um tipo de caractere ou não é sensível a letras maiúsculas e minúsculas.
IsFixedLength bool true - Colunas deste tipo de dado criadas pela linguagem de definição de dados (DDL) terão comprimento fixo.

false - As colunas deste tipo de dado criadas pelo DDL terão comprimento variável.

DBNull.Value - Não se sabe se o fornecedor irá mapear este campo com uma coluna de comprimento fixo ou de comprimento variável.
PrecisãoEscalaFixada bool true - O tipo de dado tem precisão e escala fixas.

false - O tipo de dado não tem 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 de cada fornecedor.

false - O tipo de dado não contém dados muito longos.
IsNullable bool true - O tipo de dados é nulo.

false - O tipo de dados não pode ser nulo.

DBNull.Value - Não se sabe se o tipo de dado é anulável.
IsSearchable bool true - O tipo de dado pode ser usado numa cláusula WHERE com qualquer operador, exceto o predicado LIKE.

false - O tipo de dado não pode ser usado numa cláusula WHERE com qualquer operador exceto o predicado LIKE.
ÉPesquisávelComLike bool true - O tipo de dado pode ser usado com o predicado LIKE.

false - O tipo de dado não pode ser usado com o predicado LIKE.
IsUnsigned bool true - O tipo de dados é não assinado.

false - O tipo de dados é assinado.

DBNull.Value - Não aplicável ao tipo de dado.
Escala Máxima short Se o indicador de tipo for de tipo numérico, este valor é o número máximo permitido à direita do ponto decimal. Caso contrário, este valor é DBNull.Value.
Escala mínima short Se o indicador de tipo for de tipo numérico, este valor é o número mínimo permitido à direita do ponto decimal. Caso contrário, este valor é DBNull.Value.
ÉTipoConcurrência bool true – O tipo de dado é atualizado pela base de dados sempre que a linha é alterada e o valor da coluna é diferente de todos os valores anteriores.

false – O tipo de dado é atualizado pela base de dados sempre que a linha é alterada.

DBNull.Value – A base de dados não suporta este tipo de dado.
ÉLiteralSuportado bool true – O tipo de dado pode ser expresso como literal.

false – O tipo de dado não pode ser expresso como literal.
LiteralPrefix string O prefixo aplicado a um determinado literal.
Sufixo literal string O sufixo aplicado a um literal específico.

Restrições

Esta coleção de esquemas revelou informações sobre as restrições suportadas pelo fornecedor que atualmente é utilizado para se ligar à base de dados.

ColumnName Tipo de Dados Description
Nome da Coleção string O nome da coleção à qual essas restrições se aplicam.
Nome de Restrição string O nome da restrição na coleção.
RestriçãoPadrão string 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

Esta coleção de esquemas expõe informações sobre as palavras reservadas pela base de dados a que o fornecedor está atualmente ligado.

ColumnName Tipo de Dados Description
Palavra-chave reservada string Palavra reservada específica do provedor.

Consulte também