次の方法で共有


Interval データ型での既定の先頭有効桁数と秒小数部分のオーバーライド

ARD のSQL_DESC_TYPE フィールドが datetime または interval C 型に設定されている場合、 SQLBindCol または SQLSetDescField を呼び出すことによって、SQL_DESC_PRECISION フィールド (間隔秒の有効桁数を含む) は次の既定値に設定されます。

  • 2 番目のコンポーネントを持つタイムスタンプとすべての間隔データ型の場合は 6。

  • 他のすべてのデータ型の場合は 0。

すべての間隔データ型について、間隔の先頭フィールドの有効桁数を含むSQL_DESC_DATETIME_INTERVAL_PRECISION記述子フィールドは、既定値の 2 に設定されます。

APD のSQL_DESC_TYPE フィールドが datetime または interval C 型に設定されている場合、 SQLBindParameter または SQLSetDescField を呼び出すことによって、APD のSQL_DESC_PRECISIONフィールドとSQL_DESC_DATETIME_INTERVAL_PRECISION フィールドは、前に指定した既定値に設定されます。 これは入力パラメーターには当てはまりますが、入力/出力パラメーターまたは出力パラメーターには当てはまりません。

SQLSetDescRec を呼び出すと、有効桁数の前の間隔が既定値に設定されますが、間隔の秒の有効桁数 (SQL_DESC_PRECISION フィールド内) が Precision 引数の値に設定されます。

以前に指定した既定値のいずれかがアプリケーションで使用できない場合、アプリケーションは SQLSetDescField を呼び出して SQL_DESC_PRECISION または SQL_DESC_DATETIME_INTERVAL_PRECISION フィールドを設定する必要があります。

アプリケーションが SQLGetData を呼び出して datetime 型または間隔 C 型にデータを返す場合は、既定の間隔の先頭の有効桁数と間隔秒の有効桁数が使用されます。 いずれかの既定値が受け入れられない場合、アプリケーションは SQLSetDescField を呼び出して記述子フィールドを設定するか、 SQLSetDescRec を 呼び出してSQL_DESC_PRECISIONを設定する必要があります。 SQLGetData の呼び出しには、記述子フィールドの値を使用する TargetType SQL_ARD_TYPEが必要です。

SQLPutData が呼び出されると、データ実行時パラメーターまたは列に対応する記述子レコードのフィールド (SQLExecute または SQLExecDirect の呼び出し用の APD フィールド、または SQLBulkOperations または SQLSetPos の呼び出し用の ARD フィールド) から、間隔の先頭の有効桁数と間隔秒の有効桁数が読み取られます。