Compartilhar via


SQLSetDescRec

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

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

SQLSetDescRec e parâmetros com valor de tabela

SQLSetDescRec pode ser usado para definir campos de descritor para parâmetros com valor de tabela e colunas de parâmetro com valor de tabela. As colunas do parâmetro com valor de tabela ficam disponíveis somente quando o campo do cabeçalho do descritor SQL_SOPT_SS_PARAM_FOCUS é definido como o ordinal de um registro que tenha SQL_DESC_TYPE definido como SQL_SS_TABLE. Para obter mais informações sobre SQL_SPOT_SS_PARAM_FOCUS, consulte SQLSetStmtAttr.

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

Parâmetro Atributo relacionado para tipos de parâmetro sem valor de tabela, incluindo colunas de parâmetro com valor de tabela Atributo relacionado para parâmetros com valor de tabela
Tipo SQL_DESC_TYPE SQL_SS_TABLE
SubType Ignorado Para registros de tipo SQL_DATETIME ou SQL_INTERVAL, defina como SQL_DESC_DATETIME_INTERVAL_CODE.
Comprimento SQL_DESC_OCTET_LENGTH O comprimento do nome do tipo de parâmetro com valor de tabela. Isso poderá ser SQL_NTS se o nome do tipo terminar com caractere nulo ou zero se o nome do tipo de parâmetro com valor de tabela não for necessário.
Precisão SQL_DESC_PRECISION SQL_DESC_ARRAY_SIZE
Escala SQL_DESC_SCALE Não utilizado. O parâmetro deve ser zero.
DataPtr SQL_DESC_DATA_PTR em APD SQL_CA_SS_TYPE_NAME

O parâmetro é opcional para chamadas de procedimento armazenado e NULL poderá ser especificado se ele não for necessário. Esse parâmetro deve ser especificado para instruções SQL que não sejam chamadas de procedimento.

DataPtr também serve como um valor exclusivo que o aplicativo pode usar para identificar esse parâmetro com valor de tabela quando a associação de linha variável é usada.
StringLengthPtr SQL_DESC_OCTET_LENGTH_PTR SQL_DESC_OCTET_LENGTH_PTR

Para um parâmetro com valor de tabela, trata-se do número de linhas de transferência ou SQL_DATA_AT_EXEC. Esse é um ponteiro para um valor que contém o número de linhas a serem transferidas com SQLExecDirect.
IndicadorPtr SQL_DESC_INDICATOR_PTR SQL_DESC_INDICATOR_PTR

Para obter mais informações sobre parâmetros com valor de tabela, consulte ODBC (Parâmetros com valor de tabela).

Suporte de SQLSetDescRec a recursos aprimorados de data e hora

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

Atributo Tipo SubType Comprimento Precisão Escala
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 de SQLSetDescRec para UDTs CLR grandes

SQLSetDescRec dá suporte a UDTs (tipos definidos pelo usuário) CLR grandes. Para obter mais informações, consulte ODBC (Tipos Definidos pelo Usuário) CLR Grandes.

Confira também

SQLSetDescRec
Detalhes da implementação da API do ODBC