SQLSetDescRec

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

このトピックでは、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
サブタイプ 無視 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

テーブル値パラメーターの詳細については、「テーブル値パラメーター (ODBC)」を参照してください。

SQLSetDescRec による機能強化された日付と時刻のサポート

日付型または時刻型に対して許可される値を次に示します。

属性 Type サブタイプ [データ型] [精度] スケール
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 User-Defined型 (ODBC)」を参照してください。

参照

SQLSetDescRec
ODBC API 実装の詳細