データ・タイプ属性

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

精度

数値列または数値パラメーターの精度とは、その列またはパラメーターのデータ・タイプで使用される最大桁数のことを指します。非数値列または非数値パラメーターの精度とは一般的に、その列またはパラメーターの最大長か定義された長さのことを指します。以下の表では、各 SQL データ・タイプの精度について定義します。

表 21. 精度

fSqlType 精度
SQL_CHARSQL_VARCHAR
定義された、列またはパラメーターの長さ。 例えば、CHAR(10) と定義された列の精度は 10 です。
SQL_DECIMAL 定義された最大桁数。例えば、DECIMAL(10,3) と定義された列の精度は 10 です。
SQL_SMALLINT a 5
SQL_INTEGER a 10
SQL_BLOB 定義された、列またはパラメーターの長さ。例えば、BLOB(10) と定義された列の精度は 10 です。
SQL_DATE a 10 (yyyy-mm-dd という形式での文字の数)。
SQL_TIME a 8 (hh:mm:ss という形式での文字の数)。
SQL_TIMESTAMP 26 (TIMESTAMP データ・タイプで使用される、yyyy-mm-dd-hh.mm.ss.ffffff という形式での文字数。)

a: SQLBindParameter()cbParamDef 引き数は、このデータ・タイプでは無視されます。

位取り

数値列または数値パラメーターの位取りとは、小数点の右側に存在する桁の最大数のことを指します。以下の表で、各 SQL データ・タイプの位取りについて定義します。

表 22. 位取り

fSqlType 位取り
SQL_CHARSQL_VARCHAR
適用外。
SQL_DECIMAL 小数点の右側にある、定義された桁数。例えば、DECIMAL(10, 3) と定義された列の位取りは 3 です。
SQL_SMALLINTSQL_INTEGER
0
SQL_BLOB 適用外。
SQL_DATE
SQL_TIME
適用外。
SQL_TIMESTAMP 6 (yyyy-mm-dd-hh.mm.ss.ffffff という形式での小数点の右側の桁数。)

長さ

列の長さとは、データがデフォルトの C データ・タイプに転送されたときにアプリケーションに戻される最大バイト数のことです。文字データの場合、この長さにヌル終了バイトは含まれません。列の長さは、データ・ソース上のデータを格納するのに必要なバイト数とは異なることに注意してください。

以下の表では、各 SQL データ・タイプの長さについて定義します。

表 23. 長さ

fSqlType 長さ
SQL_CHARSQL_VARCHAR
列の定義された長さ。例えば、CHAR(10) と定義された列の長さは 10 です。
SQL_DECIMAL 最大桁数に 2 を加算した数。これらのデータ・タイプは文字ストリングとして戻されるため、各桁の数字、符号、および小数点のための文字が必要となります。例えば、DECIMAL(10,3) と定義された列の長さは 12 です。
SQL_SMALLINT 2 (2 バイト)。
SQL_INTEGER 4 (4 バイト)。
SQL_BLOB 列の定義された長さ。例えば、BLOB(10) と定義された列の長さは 10 です。
SQL_DATE
SQL_TIME
6 (DATE_STRUCT または TIME_STRUCT 構造体のサイズ)。
SQL_TIMESTAMP 16 (TIMESTAMP_STRUCT 構造体のサイズ)。

ディスプレイ・サイズ

列のディスプレイ・サイズとは、データを文字書式で表示するのに必要な最大バイト数のことです。以下の表では、各 SQL データ・タイプのディスプレイ・サイズについて定義します。


表 24. ディスプレイ・サイズ

fSqlType ディスプレイ・サイズ
SQL_CHARSQL_VARCHAR
列の定義された長さ。例えば、CHAR(10) と定義された列のディスプレイ・サイズは 10 です。
SQL_DECIMAL 列の精度に 2 を加算した値 (符号、数字の最大桁数、および小数点)。例えば、DECIMAL(10,3) と定義された列のディスプレイ・サイズは 12 です。
SQL_SMALLINT 6 (1 つの符号と 5 桁の数字)。
SQL_INTEGER 11 (1 つの符号と 10 桁の数字)。
SQL_BLOB 定義された列の長さに 2 を掛けた値 (各バイナリー・バイトは 2 桁の 16 進数で表現されます)。例えば、BLOB(10) と定義された列のディスプレイ・サイズは 20 です。
SQL_DATE 10 (yyyy-mm-dd という形式での日付)。
SQL_TIME 8 (hh:mm:ss という形式での時刻)。
SQL_TIMESTAMP 26 (yyyy-mm-dd-hh.mm.ss.ffffff という形式でのタイム・スタンプ)。