次の方法で共有


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)」を参照してください。

関連項目

概念

その他の技術情報