Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Executar um comando que contém parâmetros com valor de tabela requer duas fases:
Especifique os tipos de parâmetro.
Associe os dados do parâmetro.
Especificação do parâmetro Table-Valued
O consumidor pode especificar o tipo do parâmetro com valor de tabela. Essas informações incluem o nome do tipo de parâmetro com valor de tabela. Ele também inclui o nome do esquema, se o tipo de tabela definido pelo usuário para o parâmetro com valor de tabela não estiver no esquema padrão atual para a conexão. Dependendo do suporte ao servidor, o consumidor também pode especificar informações de metadados opcionais, como ordenação de colunas, e pode especificar que todas as linhas para colunas específicas tenham os valores padrão.
Para especificar um parâmetro com valor de tabela, o consumidor chama ISSCommandWithParameter::SetParameterInfo e, opcionalmente, chama ISSCommandWithParameters::SetParameterProperties. Para um parâmetro com valor de tabela, o campo pwszDataSourceType na estrutura DBPARAMBINDINFO tem um valor de DBTYPE_TABLE. O campo ulParamSize é definido como ~0 para indicar que o comprimento é desconhecido. Propriedades específicas para parâmetros com valor de tabela, como nome do esquema, nome do tipo, ordem de coluna e colunas padrão, podem ser definidas por meio de ISSCommandWithParameters::SetParameterProperties.
Associação de parâmetro Table-Valued
Um parâmetro com valor de tabela pode ser qualquer objeto de conjunto de linhas. O provedor lê desse objeto ao enviar parâmetros com valor de tabela para o servidor durante a execução.
Para associar o parâmetro com valor de tabela, o consumidor chama IAccessor::CreateAccessor. O campo wType da estrutura DBBINDING para o parâmetro com valor de tabela é definido como DBTYPE_TABLE. O membro pObject da estrutura DBBINDING não é NULL e o membro iid do pObject é definido como IID_IRowset ou qualquer outra interface de objeto de conjunto de linhas de parâmetro com valor de tabela. Os campos restantes na estrutura DBBINDING devem ser definidos da mesma maneira que são definidos para BLOBs transmitidos.
Nas associações para o parâmetro com valor de tabela e o objeto de conjunto de linhas associado a um parâmetro com valor de tabela, as seguintes restrições se aplicam:
Os únicos valores de status permitidos para dados de coluna do conjunto de linhas de parâmetro com valor de tabela são DBSTATUS_S_ISNULL e DBSTATUS_S_OK. DBSTATUS_S_DEFAULT resultará em uma falha e o valor de status associado será definido como DBSTATUS_E_BADSTATUS.
Um parâmetro com valor de tabela pode ser marcado com o status DBSTATUS_S_DEFAULT. Os únicos valores válidos são DBSTATUS_S_DEFAULT e DBSTATUS_S_OK. Quando o status é definido como DBSTATUS_S_DEFAULT, o valor do parâmetro com valor de tabela corresponde a uma tabela vazia.
As colunas somente leitura em parâmetros com valor de tabela (identidade ou colunas computadas) devem ser marcadas como padrão usando a propriedade SSPROP_PARAM_TABLE_DEFAULT_COLUMNS. As colunas que têm um valor padrão também devem ser marcadas como padrão por meio de SSPROP_PARAM_TABLE_DEFAULT_COLUMNS propriedade para permitir que o valor padrão seja usado para os valores de dados da coluna para um parâmetro com valor de tabela específico. O provedor ignorará os valores de dados associados às colunas marcadas como padrão.
Os dados serão enviados ao servidor para colunas com DBPROP_COL_AUTOINCREMENT ou SSPROP_COL_COMPUTED, a menos que SSPROP_PARAM_TABLE_DEFAULT também esteja definido.
Consulte Também
Parâmetros deTable-Valued (OLE DB)
Usar parâmetros de Table-Valued (OLE DB)