文字データの C から SQL への変換

C データ・タイプ SQL_C_CHAR と SQL_C_WCHAR を SQL データ・タイプに変換できます。

SQL_C_WCHAR データ・タイプのデータ長は UCS-2 ユニコード・データのバイト数です。

次の表は、文字 C データから SQL データへの変換 に関する情報を示しています。

表 1. 文字 C データから SQL データへの変換
fSqlType テスト SQLSTATE
  • SQL_CHAR
  • SQL_VARCHAR
  • SQL_LONGVARCHAR
  • SQL_CLOB
データ長 <= 列の長さ 00 000 1
データ長 > 列の長さ 01 0 04
  • SQL_DECIMAL
  • SQL_NUMERIC
  • SQL_SMALLINT
  • SQL_INTEGER
  • SQL_BIGINT
  • SQL_REAL
  • SQL_FLOAT
  • SQL_DOUBLE
  • SQL_DECFLOAT
切り捨てられずに変換されたデータ 00 000 1
変換され切り捨てられたデータ、ただし有効桁は失われていない 01 0 04
データ変換の結果、有効桁が消失する 2 20 03
データ値は数値ではない 2 20 05
SQL_BINARY SQL_VARBINARY SQL_LONGVARBINARY SQL_BLOB (データ長) < 列の長さ 該当なし
(データ長) >= 列の長さ 01 0 04
データ値は 16 進値ではない 2 20 05
SQL_ROWID データ長 <= 列の長さ 00 000 1
データ長 > 列の長さ 01 0 04
SQL_TYPE_DATE データ値は有効な日付 00 000 1
データ値が有効なタイム・スタンプである2 00 000 1
データ値が有効な日付およびタイム・スタンプではない 22008
SQL_TYPE_TIME データ値は有効な時刻 00 000 1
データ値が有効な時刻およびタイム・スタンプではない 22008
データ値が有効なタイム・スタンプである3 00 000 1
SQL_TYPE_TIMESTAMP データ値は有効なタイム・スタンプ 00 000 1
データ値が有効なタイム・スタンプではない 22008
データ値が有効なタイム・スタンプであり、小数秒は切り捨てられる 01 0 04
データ値が有効なタイム・スタンプであり、タイム・ゾーン部分はゼロ以外である。 01 0 04
SQL_TYPE_TIMESTAMP_WITH_TIMEZONE データ値は、タイム・ゾーンが指定された有効なタイム・スタンプ 00 000 1
データ値は、タイム・ゾーンを持つ有効なタイム・スタンプではない 22008
データ値が有効なタイム・スタンプであり、タイム・ゾーン・フィールドが指定されていない4 00 000 1
データ値がタイム・ゾーンを持つ有効なタイム・スタンプであり、小数秒は切り捨てられる 01 0 04
  • SQL_GRAPHIC
  • SQL_VARGRAPHIC
  • SQL_LONGVARGRAPHIC
  • SQL_DBCLOB
データ長 / 2 <= 列の長さ 00 000 1
データ長 / 2 < 列の長さ 01 0 04
SQL_XML なし 00 000 1
注:
  1. SQLSTATE 00000 は、 SQLGetDiagRec()によって戻されるのではなく、関数が SQL_SUCCESS を戻すときに示されます。
  2. タイム・スタンプの日付部分のみが考慮されます。
  3. タイム・スタンプの時刻部分のみが考慮されます。
  4. TIMESTAMP のタイム・ゾーン・コンポーネントは、 CLIENTTIMEZONE、SESSIONTIMEZONE、またはアプリケーションが実行されているマシンの現行システムのタイム・ゾーンのいずれかに基づいて設定されます。