Compartilhar via


Suporte ao tipo de parâmetro com valor de tabela OLE DB no SQL Server Native Client (métodos)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Os seguintes métodos OLE DB padrão dão suporte a parâmetros com valor de tabela:

Método Suporte de parâmetro com valor de tabela
ITableDefinitionWithConstraints::CreateTableWithConstraints Usado quando você conhece as informações de tipo de parâmetro com valor de tabela e deseja criar uma instância de um objeto do conjunto de linhas de parâmetro com valor de tabela baseado na informações do tipo.

Para obter mais informações, confira "Cenário estático" em Criação do conjunto de linhas do parâmetro com valor de tabela.
IOpenRowset::OpenRowset Usado quando você não conhece as informações de tipo de um parâmetro com valor de tabela e deseja criar uma instância de um objeto do conjunto de linhas de parâmetro com valor de tabela em informações de metadados recuperadas do servidor.

Para obter mais informações, confira "Cenário dinâmico" em Criação do conjunto de linhas do parâmetro com valor de tabela.
ISSCommandWithParameters::SetParameterInfo Para especificar um parâmetro de comando do parâmetro com valor de tabela, o consumidor especifica o tipo de parâmetro como "table" ou "DBTYPE_TABLE" no membro pwszName da estrutura DBPARAMBINDINFO. O ulParamSize é definido como ~0. Para obter mais informações, confira "Especificação de parâmetros com valor de tabela" em Como executar comandos que contêm parâmetros com valor de tabela.
ISSCommandWithParameters::SetParameterProperties Define as propriedades específicas dos parâmetros com valor de tabela, como nome do esquema, nome de tipo, ordem de coluna e colunas padrão.

O consumidor especifica o ordinal do parâmetro no iOrdinal da estrutura SSPARAMPROPS. O conjunto de propriedades solicitado é DBPROPSET_SQLSERVERPARAMETER.
ISSCommandWithParameters::GetParameterInfo Obtém os tipos de todos os parâmetros para um comando especificado.

Para parâmetros com valor de tabela, o campo wType na estrutura DBPARAMINFO terá o tipo DBTYPE_TABLE. O campo ulParamSize será definido como ~ 0 para indicar comprimento desconhecido.
ISSCommandWithParameters::GetParameterProperties Obtém informações de tipo adicionais para parâmetros do tipo DBTYPE_TABLE.

O consumidor especifica o ordinal do parâmetro no membro iOrdinal da estrutura SSPARAMPROPS. O consumidor pode solicitar qualquer propriedade do conjunto de propriedades DBPROPSET_SQLSERVERPARAMETER listado sob ISSCommandWithParameters::SetParameterProperties.

Como o consumidor não conhece o tipo de parâmetro com valor de tabela, o provedor deve definir o SSPROP_PARAM_TYPE_TYPENAME, SSPROP_PARAM_TYPE_SCHEMANAME e SSPROP_PARAM_TYPE_CATALOGNAME com seus valores corretos. As propriedades restantes, SSPROP_PARAM_TABLE_DEFAULT_COLUMNS e SSPROP_PARAM_TABLE_COLUMN_SORT_ORDER, terão seus valores padrão. Depois que o consumidor descobrir o nome do tipo de parâmetro com valor de tabela, ele usará IOpenRowset::OpenRowset para criar uma instância desse parâmetro com valor de tabela especificando o nome do tipo de parâmetro com valor de tabela. Para obter mais informações, confira Descoberta de tipo de parâmetros com valor de tabela.
IRowsetInfo::GetProperties Obtém propriedades de conjunto de linhas de parâmetro com valor de tabela. O consumidor pode usar essas propriedades para montar associações de maneira ideal.
IColumnsRowset::GetColumnsRowset Recupera informações de metadados sobre uma tabela SQL Server. Para parâmetros com valor de tabela, essa mesma interface fornece informações detalhadas de metadados sobre cada coluna, como o seguinte:

DBCOLUMN_FLAGS indica nulidade pelo bit de DBCOLUMNFLAGS_ISNULLABLE.

DBCOLUMN_ISUNIQUE indica se a coluna é uma coluna de identidade.

DBCOLUMN_COMPUTEMODE indica se a coluna é computada.
IAccessor::CreateAccessor Para associar um objeto de conjunto de linhas de parâmetro com valor de tabela a um parâmetro de comando, crie um acessador com seu membro wType definido como DBTYPE_TABLE. A estrutura DBOBJECT conterá IID_IRowset ou qualquer outra interface de objeto de conjunto de linhas válida no membro iid. O restante dos campos é tratado de forma semelhante a DBTYPE_IUNKNOWN.

Consulte Também

Suporte ao tipo de parâmetro com valor de tabela OLE DB
Criação do conjunto de linhas do parâmetro com valor de tabela
Usar Parâmetros com valor de tabela (OLE DB)