CLI の手引きおよび解説書

データ・タイプ属性

以下のデータ・タイプ属性に関する情報を示します。

精度

数値列またはパラメーターの精度は、その列またはパラメーターのデータ・タイプで使用される桁数の最大数を参照します。非数字の列またはパラメーターの精度とは、一般には、その列またはパラメーターの最大長または定義済みの長さを指します。次の表は、各 SQL データ・タイプの精度を定義しています。

表 194. 精度
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 列またはパラメーターの最大長。
注:
a
このデータ・タイプのパラメーターの精度を SQLBindParameter() または SQLSetParam() で定義する場合、 cbParamDef は、この表で定義されている精度ではなく、データの全長に設定してください。
b
このデータ・タイプでは、 SQLBindParameter() または SQLSetParam()cbParamDef 引き数は無視されます。

位取り

数値の列またはパラメーターの位取りは、小数点の右にある桁の最大数を参照します。近似の浮動小数点数の列またはパラメーターの場合、位取りは未定義であることに注意してください。小数点の右の桁数が固定されないからです。次の表は、各 SQL データ・タイプの位取りを定義しています。

表 195. 位取り

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 データ・タイプの長さを定義しています。

表 196. 長さ

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 データ・タイプの表示サイズを定義しています。

表 197. 表示サイズ
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 列またはパラメーターの最大長。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]