SQLSetDescRec
Este tópico aborda a funcionalidade SQLSetDescRec que é 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 a tipos de parâmetros sem valor de tabela, inclusive colunas de parâmetros com valor de tabela |
Atributo relacionado para parâmetros com valor de tabela |
---|---|---|
Type |
SQL_DESC_TYPE |
SQL_SS_TABLE |
SubType |
Ignored |
Para registros de tipo SQL_DATETIME ou SQL_INTERVAL, defina como SQL_DESC_DATETIME_INTERVAL_CODE. |
Length |
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. |
Precision |
SQL_DESC_PRECISION |
SQL_DESC_ARRAY_SIZE |
Scale |
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 funciona como um valor exclusivo que o aplicativo poderá usar para identificar esse parâmetro com valor de tabela quando a associação de linha variável for 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 mantém o número de linhas a serem transferidas com SQLExecDirect. |
IndicatorPtr |
SQL_DESC_INDICATOR_PTR |
SQL_DESC_INDICATOR_PTR |
Para obter mais informações sobre parâmetros com valor de tabela, consulte Parâmetros com valor de tabela (ODBC).
Suporte de SQLSetDescRec a recursos aprimorados de data e hora
Os valores permitidos para tipos de data/hora são os seguintes:
Type |
SubType |
Length |
Precision |
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 Aprimoramentos de data/hora (ODBC).
Suporte de SQLSetDescRec para UDTs CLR grandes
SQLSetDescRec oferece suporte a tipos de dados CLR grandes definidos pelo usuário. Para obter mais informações, consulte Tipos de dados CLR grandes definidos pelo usuário (ODBC).