精度
数値列または数値パラメーターの精度とは、その列またはパラメーターのデータ・タイプで使用される最大桁数のことを指します。非数値列または非数値パラメーターの精度とは一般的に、その列またはパラメーターの最大長か定義された長さのことを指します。以下の表では、各 SQL データ・タイプの精度について定義します。
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 データ・タイプの位取りについて定義します。
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 データ・タイプの長さについて定義します。
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 データ・タイプのディスプレイ・サイズについて定義します。
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 という形式でのタイム・スタンプ)。 |