SQLGetDescRec

This topic discusses SQLGetDescRec functionality that is specific to SQL Server Native Client.

SQLGetDescRec and Table-Valued Parameters

SQLGetDescRec can be used to get values for attributes of table-valued parameters and table-valued parameter columns. The RecNumber parameter of SQLGetDescRec corresponds to the ParameterNumber parameter of SQLBindParameter.

Table-valued parameter columns are only available when the descriptor header field SQL_SOPT_SS_PARAM_FOCUS is set to the ordinal of a record that has SQL_DESC_TYPE set to SQL_SS_TABLE. For more information about SQL_SOPT_SS_PARAM_FOCUS about, see SQLSetStmtAttr.

SQLGetDescRec returns the following data:

Parameter Table-valued parameter Table-valued parameter columns and other parameters
Name The formal parameter name for a stored procedure call; otherwise, a 0 length string. The table-valued parameter column name.
TypePtr SQL_DESC_TYPE. For table-vaued parameters, this is SQL_SS_TABLE. SQL_DESC_TYPE
SubTypePtr Undefined SQL_DESC_DATETIME_INTERVAL_CODE (For records of type SQL_DATETIME or SQL_INTERVAL.)
LengthPtr 0 SQL_DESC_OCTET_LENGTH
PrecisionPtr 0 SQL_DESC_PRECISION
ScalePtr 0 SQL_DESC_SCALE
NullablePtr 1 SQL_DESC_NULLABLE

For more information about table-valued parameters, see Table-Valued Parameters (ODBC).

SQLGetDescRec Support for Enhanced Date and Time Features

The values returned for date/time types are as follows:

TypePtr SubTypePtr LengthPtr PrecisionPtr ScalePtr
datetime SQL_DATETIME SQL_CODE_TIMESTAMP 4 3 3
smalldatetime 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

For more information, see Date and Time Improvements (ODBC).

SQLGetDescRec Support for Large CLR UDTs

SQLGetDescRec supports large CLR user-defined types (UDTs). For more information, see Large CLR User-Defined Types (ODBC).

See Also

SQLGetDescRec
ODBC API Implementation Details