このトピックでは、SQL Server Native Client に固有の SQLSetDescRec 機能について説明します。
SQLSetDescRec パラメーターと Table-Valued パラメーター
SQLSetDescRec を使用して、テーブル値パラメーターとテーブル値パラメーター列の記述子フィールドを設定できます。 テーブル値パラメーター列は、記述子のヘッダー フィールド SQL_SOPT_SS_PARAM_FOCUS に、SQL_DESC_TYPE が SQL_SS_TABLE に設定されているレコードの序数が設定される場合のみ使用できます。 SQL_SOPT_SS_PARAM_FOCUSの詳細については、「 SQLSetStmtAttr」を参照してください。
次の表では、パラメーターフィールドと記述子フィールド間のマッピングについて説明します。
| パラメーター | テーブル値パラメーター列を含む、テーブル値以外のパラメーター型の関連属性 | テーブル値パラメーターの関連属性 |
|---|---|---|
| タイプ | SQL_DESC_TYPE | SQL_SS_TABLE |
| サブタイプ | 無視 | SQL_DATETIMEまたはSQL_INTERVALの種類のレコードの場合は、これをSQL_DESC_DATETIME_INTERVAL_CODEに設定します。 |
| 長さ | SQL_DESC_OCTET_LENGTH | テーブル値パラメーターの型名の長さ。 これは、型名が null で終わる場合はSQL_NTS、テーブル値パラメーターの型名が不要な場合は 0 にすることができます。 |
| 精度 | SQL_DESC_PRECISION | SQL_DESC_ARRAY_SIZE |
| スケール | 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 |
テーブル値パラメーターの詳細については、「 Table-Valued Parameters (ODBC)」を参照してください。
強化された日付と時刻の機能に対する SQLSetDescRec のサポート
日付/時刻型に使用できる値は次のとおりです。
| タイプ | サブタイプ | 長さ | 精度 | スケール | |
|---|---|---|---|---|---|
| datetime | SQL_DATETIME | SQL_CODE_TIMESTAMP | 4 | 3 | 3 |
| smalldatetime(スモールデイトタイム) | SQL_SQL_DATETIME | SQL_CODE_TIMESTAMP | 8 | 0 | 0 |
| 日付 | SQL_DATETIME | SQL_CODE_DATE | 6 | 0 | 0 |
| 時間 | 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 |
詳細については、「 Date and Time Improvements (ODBC)」を参照してください。
大きな CLR UDT の SQLSetDescRec サポート
SQLSetDescRec では、大きな CLR ユーザー定義型 (UDT) がサポートされています。 詳細については、「 Large CLR ユーザー定義型 (ODBC)を参照してください。