Table-Valued Descoberta de Tipos de Parâmetro (driver OLE DB)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Base de dados SQL no Microsoft Fabric

Baixar driver OLE DB

O consumidor — ou seja, a aplicação cliente que utiliza o Driver OLE DB para SQL Server — pode descobrir o tipo de cada parâmetro de comando se o texto do comando tiver sido fornecido ao Fornecedor OLE DB. Depois de se conhecer o tipo de parâmetro com valores de tabela, o consumidor pode descobrir a informação de metadados para cada coluna individual do parâmetro com valores de tabela.

A informação de tipo dos parâmetros do procedimento é suportada por ICommandWithParameters::GetParameterInfo para a maioria dos tipos de parâmetros. A partir do SQL Server 2005 (9.x), com a introdução dos tipos definidos pelo utilizador e do tipo de dados xml , o método GetParameterInfo não era suficiente para este propósito porque não era possível fornecer informação de tipo definida pelo utilizador (nome, esquema e catálogo) através do ICommandWithParameters. Foi definida uma nova interface, ISSCommandWithParameters, para fornecer informação de tipo alargada.

Para parâmetros com valores de tabela, também utiliza a interface ISSCommandWithParameters para descobrir informação detalhada. O cliente chama ISSCommandWithParameters::GetParameterInfo após preparar o objeto de comando. Para parâmetros com valores de tabela, o membro wType da estrutura DBPARAMINFO é definido para DBTYPE_TABLE pelo fornecedor. O campo ulParamSize da estrutura DBPARAMINFO tem um valor de ~0.

O consumidor solicitaria então propriedades adicionais (nome do catálogo de tipos de parâmetro com valores em tabela, nome do esquema do tipo de parâmetro com valores em tabela, nome do tipo de parâmetro com valores em tabela, ordenação das colunas e colunas padrão) usando ISSCommandWithParameters::GetParameterProperties.

Depois de o nome do tipo ser conhecido, para obter a informação da coluna individual, o consumidor deve chamar IOpenRowset::OpenRowsetor para obter o conjunto de linhas DBSCHEMA_TABLE_TYPE_COLUMNS especificando o nome do tipo de parâmetro com valor na tabela como o nome da tabela.

Ver também

Table-Valued Parâmetros (OLE DB)
Usar Table-Valued Parâmetros (OLE DB)