Descoberta do tipo de parâmetro com valor de tabela
O consumidor – isto é, o aplicativo cliente que usa o provedor OLE DB do SQL Server Native Client – pode descobrir o tipo de cada parâmetro de comando se o texto do comando tiver sido fornecido ao provedor OLE DB. Depois que o tipo de um parâmetro com valor de tabela for conhecido, o consumidor pode descobrir as informações de metadados de cada coluna específica do parâmetro com valor de tabela.
As informações de tipo dos parâmetros de procedimento têm suporte de ICommandWithParameters::GetParameterInfo para a maioria dos tipos de parâmetros. Começando com o SQL Server 2005, com a introdução de tipos definidos pelo usuário e o tipo de dados xml, o método GetParameterInfo não era suficiente para essa finalidade, pois não era possível fornecer informações de tipo definido pelo usuário (nome, esquema e catálogo) por meio do ICommandWithParameters. Uma interface nova, a ISSCommandWithParameters, foi definida para fornecer informações de tipo estendidas.
Para parâmetros com valor de tabela, você também usa a interface ISSCommandWithParameters para descobrir informações detalhadas. O cliente chama o ISSCommandWithParameters::GetParameterInfo depois de preparar o objeto de comando. Para parâmetros com valor de tabela, o membro wType da estrutura DBPARAMINFO é definido como DBTYPE_TABLE pelo provedor. O campo ulParamSize da estrutura DBPARAMINFO tem um valor de ~ 0.
O consumidor solicita então propriedades adicionais (nome do catálogo do tipo de parâmetro com valor de tabela, nome do esquema do tipo de parâmetro com valor de tabela, nome do tipo de parâmetro com valor de tabela, classificação da coluna e colunas padrão) usando ISSCommandWithParamters::GetParameterProperties.
Depois que o nome do tipo é conhecido, para recuperar as informações de coluna específicas, o consumidor deve chamar IOpenRowset::OpenRowsetou obter o conjunto de linhas DBSCHEMA_TABLE_TYPE_COLUMNS especificando o nome do tipo de parâmetro com valor de tabela como nome da tabela.