SQLSetDescRec
このトピックでは、SQL Server Native Client 固有の SQLSetDescRec の機能について説明します。
SQLSetDescRec とテーブル値パラメータ
SQLSetDescRec を使用すると、テーブル値パラメータおよびテーブル値パラメータ列の記述子フィールドを設定できます。テーブル値パラメータ列は、記述子のヘッダー フィールド SQL_SOPT_SS_PARAM_FOCUS に、SQL_DESC_TYPE が SQL_SS_TABLE に設定されているレコードの序数が設定される場合のみ使用できます。SQL_SOPT_SS_PARAM_FOCUS の詳細については、「SQLSetStmtAttr」を参照してください。
次の表では、パラメータと記述子フィールド間のマッピングについて説明します。
パラメータ |
テーブル値パラメータ以外のパラメータの型 (テーブル値パラメータ列など) の関連属性 |
テーブル値パラメータに関連する属性 |
---|---|---|
Type |
SQL_DESC_TYPE |
SQL_SS_TABLE |
SubType |
無視 |
SQL_DATETIME 型または SQL_INTERVAL 型のレコードの場合は、これに SQL_DESC_DATETIME_INTERVAL_CODE を設定します。 |
Length |
SQL_DESC_OCTET_LENGTH |
テーブル値パラメータの型名の長さ。型名が NULL 終端の場合は SQL_NTS に、テーブル値パラメータの型名が不要の場合は 0 になります。 |
Precision |
SQL_DESC_PRECISION |
SQL_DESC_ARRAY_SIZE |
Scale |
SQL_DESC_SCALE |
使用しません。このパラメータは 0 にする必要があります。 |
DataPtr |
APD の SQL_DESC_DATA_PTR |
SQL_CA_SS_TYPE_NAME このパラメータは、ストアド プロシージャの呼び出しでは省略可能で、不要の場合は NULL を指定できます。このパラメータは、プロシージャの呼び出し以外の SQL ステートメント用に指定する必要があります。 DataPtr は、可変の行バインドの使用時にアプリケーションがテーブル値パラメータを特定するための一意の値としても機能します。 |
StringLengthPtr |
SQL_DESC_OCTET_LENGTH_PTR |
SQL_DESC_OCTET_LENGTH_PTR テーブル値パラメータの場合、これは転送する行数または SQL_DATA_AT_EXEC です。これは、SQLExecDirect で転送する行数を保持する値へのポインタです。 |
IndicatorPtr |
SQL_DESC_INDICATOR_PTR |
SQL_DESC_INDICATOR_PTR |
テーブル値パラメータの詳細については、「テーブル値パラメータ (ODBC)」を参照してください。
SQLSetDescRec による機能強化された日付と時刻のサポート
日付型または時刻型に対して許可される値を次に示します。
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 |
詳細については、「日付/時刻の強化 (ODBC)」を参照してください。
SQLSetDescRec による大きな CLR UDT のサポート
SQLSetDescRec は、大きな CLR ユーザー定義型 (UDT) をサポートしています。詳細については、「大きな CLR ユーザー定義型 (ODBC)」を参照してください。