C から SQL へ: 年月の間隔
年月間隔 ODBC C データ型の識別子は次のとおりです。
SQL_C_INTERVAL_MONTH SQL_C_INTERVAL_YEAR SQL_C_INTERVAL_YEAR_TO_MONTH
次の表は、年月間隔 C データの変換先となる ODBC SQL データ型を示しています。 テーブル内の列と用語の詳細については、「 C から SQL データ型へのデータの変換」を参照してください。
SQL 型識別子 | テスト | SQLSTATE |
---|---|---|
SQL_CHAR[a] SQL_VARCHAR[a] SQL_LONGVARCHAR[a] |
列のバイト長 >= 文字バイト長 列のバイト長 < 文字バイト長[a] データ値が有効な間隔リテラルではありません |
該当なし 22001 22015 |
SQL_WCHAR[a] SQL_WVARCHAR[a] SQL_WLONGVARCHAR[a] |
列の文字長 >= データの文字長 列の文字の長さ < データの文字長[a] データ値が有効な間隔リテラルではありません |
該当なし 22001 22015 |
SQL_TINYINT[b] SQL_SMALLINT[b] SQL_INTEGER[b] SQL_BIGINT[b] SQL_NUMERIC[b] SQL_DECIMAL[b] |
単一フィールド間隔を変換しても、数字全体が切り捨てられませんでした 変換の結果、数字全体が切り捨てられました |
該当なし 22003 |
SQL_INTERVAL_MONTH SQL_INTERVAL_YEAR SQL_INTERVAL_YEAR_TO_MONTH |
データ値は、フィールドを切り捨てずに変換されました 変換中にデータ値の 1 つ以上のフィールドが切り捨てられました |
該当なし 22015 |
[a] すべての C 間隔データ型を文字データ型に変換できます。
[b] 間隔構造の型フィールドが 1 つのフィールド (SQL_YEARまたはSQL_MONTH) である場合、間隔 C 型は、正確な数値 (SQL_TINYINT、SQL_SMALLINT、SQL_INTEGER、SQL_BIGINT、SQL_DECIMAL、またはSQL_NUMERIC) に変換できます。
間隔 C 型の既定の変換は、対応する年月間隔 SQL 型に変換されます。
ドライバーは、間隔 C データ型からデータを変換するときに、長さ/インジケーター値を無視し、データ バッファーのサイズが間隔 C データ型のサイズであると見なします。 長さ/インジケーター値は、SQLPutData の StrLen_or_Ind 引数と、SQLBindParameter の StrLen_or_IndPtr 引数で指定されたバッファーに渡されます。 データ バッファーは、SQLPutData の DataPtr 引数と SQLBindParameter の ParameterValuePtr 引数で指定されます。