SQLSetDescRec

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse Analytics

Este tópico discute a funcionalidade do SQLSetDescRec que é específica do SQL Server Native Client.

SQLSetDescRec e Parâmetros Table-Valued

O SQLSetDescRec pode ser usado para definir campos de descrição para parâmetros de tabela e colunas de parâmetros com valor de tabela. Colunas de parâmetros com valores de tabela só estão disponíveis quando o campo de cabeçalho do descritor SQL_SOPT_SS_PARAM_FOCUS está definido para o ordinal de um registo que tem SQL_DESC_TYPE definido para SQL_SS_TABLE. Para mais informações sobre SQL_SOPT_SS_PARAM_FOCUS, consulte SQLSetStmtAttr.

A tabela seguinte descreve o mapeamento entre parâmetros e campos de descritores.

Parâmetro Atributo relacionado para tipos de parâmetros não com valores em tabelas, incluindo colunas de parâmetros com valores em tabela Atributo relacionado para parâmetros com valores de tabela
Type SQL_DESC_TYPE SQL_SS_TABLE
Subtipo Ignored Para registos do tipo SQL_DATETIME ou SQL_INTERVAL, defina isto para SQL_DESC_DATETIME_INTERVAL_CODE.
Duração SQL_DESC_OCTET_LENGTH O comprimento do nome do tipo de parâmetro com valores na tabela. Isto pode ser SQL_NTS se o nome do tipo for terminado nulo, ou zero se o nome do tipo de parâmetro com valores de tabela não for necessário.
Precisão SQL_DESC_PRECISION SQL_DESC_ARRAY_SIZE
Scale SQL_DESC_SCALE Unused. Este parâmetro deve ser zero.
DataPtr SQL_DESC_DATA_PTR em APD SQL_CA_SS_TYPE_NAME

Este parâmetro é opcional para chamadas de stored procedure, e NULL pode ser especificado se não for necessário. Este parâmetro deve ser especificado para instruções SQL que não são chamadas de procedimento.

O DataPtr serve também como um valor único que a aplicação pode usar para identificar este parâmetro de tabela quando é usada a ligação de linhas de variáveis.
StringLengthPtr SQL_DESC_OCTET_LENGTH_PTR SQL_DESC_OCTET_LENGTH_PTR

Para um parâmetro com valor em tabela, este é o número de linhas a transferir ou SQL_DATA_AT_EXEC. Este é um apontador para um valor que contém o número de linhas a transferir com SQLExecDirect.
IndicatorPtr SQL_DESC_INDICATOR_PTR SQL_DESC_INDICATOR_PTR

Para mais informações sobre parâmetros com valores de tabela, veja Table-Valued Parâmetros (ODBC).

Suporte SQLSetDescRec para funcionalidades melhoradas de data e hora

Os valores permitidos para tipos de data/hora são os seguintes:

Attribute Type Subtipo Duração Precisão Scale
datetime SQL_DATETIME SQL_CODE_TIMESTAMP 4 3 3
smalldatetime SQL_SQL_DATETIME SQL_CODE_TIMESTAMP 8 0 0
date SQL_DATETIME SQL_CODE_DATE 6 0 0
time SQL_SS_TIME2 0 10 0..7 0..7
datetime2 SQL_DATETIME SQL_CODE_TIMESTAMP 16 0..7 0..7
datetimeoffset SQL_SS_TIMESTAMPOFFSET 0 20 0..7 0..7

Para obter mais informações, consulte Melhorias de data e hora (ODBC).

Suporte SQLSetDescRec para grandes CLR UDTs

O SQLSetDescRec suporta grandes tipos CLR definidos pelo utilizador (UDTs). Para obter mais informações, consulte Large CLR User-Defined Types (ODBC).