Tipo SQL ODBC para parâmetros com valor de tabela
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
O suporte para parâmetros com valor de tabela é fornecido por um novo tipo ODBC SQL, SQL_SS_TABLE.
Comentários
SQL_SS_TABLE não podem ser convertidos em nenhum outro tipo de dados ODBC ou SQL Server.
Se SQL_SS_TABLE for usado como um tipo de dados C no parâmetro ValueType de SQLBindParameter, ou for feita uma tentativa de definir SQL_DESC_TYPE em um registro APD (descritor de parâmetro de aplicativo) como SQL_SS_TABLE, SQL_ERROR será retornado e um registro de diagnóstico será gerado com SQLSTATE=HY003, "Tipo de buffer de aplicativo inválido".
Se SQL_DESC_TYPE for definido como SQL_SS_TABLE em um registro do IPD e o registro do descritor de parâmetro de aplicativo correspondente não for SQL_C_DEFAULT, SQL_ERROR será retornado e um registro de diagnóstico será gerado com SQLSTATE=HY003, "Tipo de buffer de aplicativo inválido". Isso pode ocorrer com o ParameterType de um SQLSetDescField, SQLSetDescRec ou SQLBindParameter.
Se o parâmetro TargetType for SQL_SS_TABLE ao chamar SQLGetData, SQL_ERROR será retornado e um registro de diagnóstico será gerado com SQLSTATE=HY003, "Tipo de buffer de aplicativo inválido".
Não é possível associar uma coluna de parâmetros com valor de tabela como o tipo SQL_SS_TABLE. Se SQLBindParameter for chamado com ParameterType definido como SQL_SS_TABLE, SQL_ERROR será retornado e um registro de diagnóstico será gerado com SQLSTATE=HY004, "Tipo de dados SQL inválido". Isso também pode ocorrer com SQLSetDescField e SQLSetDescRec.
Os valores de coluna de parâmetros com valor de tabela têm as mesmas opções de conversão de dados que as colunas de parâmetros e resultados.
Um parâmetro com valor de tabela só pode ser um parâmetro de entrada no SQL Server 2008 (10.0.x) ou posterior. Se for feita uma tentativa de definir SQL_DESC_PARAMETER_TYPE para um valor diferente de SQL_PARAM_INPUT via SQLBindParameter ou SQLSetDescField, SQL_ERROR será retornado e um registro de diagnóstico será adicionado à instrução com SQLSTATE=HY105 e a mensagem "Tipo de parâmetro inválido".
As colunas de parâmetros com valor de tabela não podem usar SQL_DEFAULT_PARAM em StrLen_or_IndPtr, porque não há suporte para valores padrão por linha com parâmetros com valor de tabela. Em vez disso, um aplicativo pode definir o atributo de coluna SQL_CA_SS_COL_HAS_DEFAULT_VALUE como 1. Isso significa que a coluna terá valores padrão para todas as linhas. Se StrLen_or_IndPtr estiver definido como SQL_DEFAULT_PARAM, SQLExecute ou SQLExecDirect retornará SQL_ERROR e um registro de diagnóstico será adicionado à instrução com SQLSTATE=HY090 e a mensagem "Cadeia de caracteres ou comprimento de buffer inválido".
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários