以下のデータ・タイプ属性に関する情報を示します。
数値列またはパラメーターの精度は、その列またはパラメーターのデータ・タイプで使用される桁数の最大数を参照します。非数字の列またはパラメーターの精度とは、一般には、その列またはパラメーターの最大長または定義済みの長さを指します。次の表は、各 SQL データ・タイプの精度を定義しています。
fSqlType | 精度 | ||
---|---|---|---|
SQL_CHAR SQL_VARCHAR SQL_CLOB | 列またはパラメーターの定義された長さ。たとえば、CHAR(10) と定義された列の精度は 10 です。 | ||
SQL_LONGVARCHAR | 列またはパラメーターの最大長。a | ||
SQL_DECIMAL SQL_NUMERIC | 桁数の定義された最大数。たとえば、NUMERIC(10,3) と定義された列の精度は 10 です。 | ||
SQL_SMALLINT b | 5 | ||
SQL_BIGINT | 19 | ||
SQL_INTEGER b | 10 | ||
SQL_FLOAT b | 15 | ||
SQL_REAL b |
7 | ||
SQL_DOUBLE b |
15 | ||
SQL_BINARY SQL_VARBINARY SQL_BLOB | 列またはパラメーターの定義された長さ。たとえば、CHAR(10) FOR BIT DATA と定義された列の精度は 10 です。 | ||
SQL_LONGVARBINARY | 列またはパラメーターの最大長。 | ||
SQL_DATE b | 10 (yyyy-mm-dd 形式の文字数) | ||
SQL_TIME b | 8 (hh:mm:ss 形式の文字数) | ||
SQL_TIMESTAMP | TIMESTAMP データ・タイプで使用する、 "yyy-mm-dd hh:mm:ss[.fff[fff]]" 形式の文字数。たとえば、タイム・スタンプが秒または小数秒を使用しない場合、精度は 16 です (「yyyy-mm-dd hh:mm」形式の文字数)。タイム・スタンプが千分の一秒を使用する場合、精度は 23 です (「yyyy-mm-dd hh:mm:ss.fff」形式の文字数)。 | ||
SQL_GRAPHIC SQL_VARGRAPHIC SQL_DBCLOB | 列またはパラメーターの定義された長さ。たとえば、GRAPHIC(10) と定義された列の精度は 10 です。 | ||
SQL_LONGVARGRAPHIC | 列またはパラメーターの最大長。 | ||
|
数値の列またはパラメーターの位取りは、小数点の右にある桁の最大数を参照します。近似の浮動小数点数の列またはパラメーターの場合、位取りは未定義であることに注意してください。小数点の右の桁数が固定されないからです。次の表は、各 SQL データ・タイプの位取りを定義しています。
fSqlType |
位取り |
---|---|
SQL_CHAR SQL_VARCHAR SQL_LONGVARCHAR SQL_CLOB | 該当しません。 |
SQL_DECIMAL SQL_NUMERIC | 小数点の右の定義された桁数。たとえば、NUMERIC (10, 3) と定義された列の位取りは 3 です。 |
SQL_SMALLINT SQL_INTEGER SQL_BIGINT | 0 |
SQL_REAL SQL_FLOAT SQL_DOUBLE |
該当しません。 |
SQL_BINARY SQL_VARBINARY SQL_LONGVARBINARY SQL_BLOB |
該当しません。 |
SQL_DATE SQL_TIME |
該当しません。 |
SQL_TIMESTAMP | "yyyy-mm-dd hh:mm:ss[fff[fff]]" 形式の、小数点の右にある桁の数。たとえば、TIMESTAMP データ・タイプが "yyyy-mm-dd hh:mm:ss.fff" 形式を使用する場合、位取りは 3 です。 |
SQL_GRAPHIC SQL_VARGRAPHIC SQL_LONGVARGRAPHIC SQL_DBCLOB |
該当しません。 |
列の長さとは、データが省略時 C データ・タイプに転送されるときにアプリケーションに戻される最大バイト 数のことです。文字データの場合、長さにはヌル終了バイトは含まれません。列の長さは、データ・ソースにデータを保管するのに必要なバイト数とは違う場合があることに注意してください。省略時 C データ・タイプのリストは、『省略時 C データ・タイプ』の節を参照してください。
次の表は、各 SQL データ・タイプの長さを定義しています。
fSqlType |
長さ |
---|---|
SQL_CHAR SQL_VARCHAR SQL_CLOB | 列の定義された長さ。たとえば、CHAR(10) と定義された列の長さは 10 です。 |
SQL_LONGVARCHAR |
列の最大長。 |
SQL_DECIMAL SQL_NUMERIC | 最大桁数に 2 を加えた値。このデータ・タイプは文字ストリングとして戻されるので、桁数、符号、および小数点の文字が必要です。たとえば、NUMERIC(10,3) と定義された列の長さは 12 です。 |
SQL_SMALLINT | 2 (2 バイト)。 |
SQL_INTEGER |
4 (4 バイト)。 |
SQL_REAL |
4 (4 バイト)。 |
SQL_FLOAT |
8 (8 バイト)。 |
SQL_DOUBLE |
8 (8 バイト)。 |
SQL_BINARY SQL_VARBINARY SQL_BLOB | 列の定義された長さ。たとえば、CHAR(10) FOR BIT DATA と定義された列の長さは 10 です。 |
SQL_LONGVARBINARY | 列の最大長。 |
SQL_DATE SQL_TIME | 6 (DATE_STRUCT または TIME_STRUCT 構造のサイズ)。 |
SQL_TIMESTAMP | 16 (TIMESTAMP_STRUCT 構造のサイズ)。 |
SQL_GRAPHIC SQL_VARGRAPHIC SQL_DBCLOB | 列の定義された長さの 2 倍。たとえば、GRAPHIC(10) と定義された列の長さは 20 です。 |
SQL_LONGVARGRAPHIC | 列の最大長の 2 倍。 |
列の表示サイズとは、文字形式でデータを表示するのに必要な最大バイト 数のことです。次の表は、各 SQL データ・タイプの表示サイズを定義しています。
fSqlType | 表示サイズ |
---|---|
SQL_CHAR SQL_VARCHAR SQL_CLOB | 列の定義された長さ。たとえば、CHAR(10) と定義された列の表示サイズは 10 です。 |
SQL_LONGVARCHAR | 列の最大長。 |
SQL_DECIMAL SQL_NUMERIC | 列の精度に 2 を加えたもの (符号、精度の桁数、および小数点)。たとえば、NUMERIC(10,3) と定義された列の表示サイズは 12 です。 |
SQL_SMALLINT | 6 (符号および 5 桁)。 |
SQL_INTEGER |
11 (符号および 10 桁)。 |
SQL_BIGINT |
20 (符号および 19 桁)。 |
SQL_REAL | 13 (符号、7 桁、小数点、文字 E、符号、および 2 桁)。 |
SQL_FLOAT SQL_DOUBLE | 22 (符号、15 桁、小数点、文字 E、符号、および 3 桁)。 |
SQL_BINARY SQL_VARBINARY SQL_BLOB | 列の定義された長さの 2 倍 (それぞれの 2 進バイトは 2 桁の 16 進数で表されます)。たとえば、CHAR(10) FOR BIT DATA と定義された列の表示サイズは 20 です。 |
SQL_LONGVARBINARY | 列の最大長の 2 倍。 |
SQL_DATE | 10 (yyyy-mm-dd 形式の日付)。 |
SQL_TIME | 8 (hh:mm:ss 形式の時刻)。 |
SQL_TIMESTAMP | 19 (タイム・スタンプの位取りが 0 の場合)、または 20 にタイム・スタンプの位取りを加えたもの (位取りが 0 より大きい場合)。これは、"yyyy-mm-dd hh:mm:ss[fff[fff]]" 形式の文字数です。たとえば、千分の一秒を保管する列の表示サイズは 23 です ("yyyy-mm-dd hh:mm:ss.fff" の文字数)。 |
SQL_GRAPHIC SQL_VARGRAPHIC SQL_DBCLOB | 列またはパラメーターの定義された長さ。たとえば、GRAPHIC(10) と定義された列の表示サイズは 20 です。 |
SQL_LONGVARGRAPHIC | 列またはパラメーターの最大長。 |