次の方法で共有


列サイズ

数値データ型の列 (またはパラメーター) サイズは、列またはパラメーターのデータ型で使用される最大桁数、またはデータの有効桁数として定義されます。 文字型の場合、これはデータの文字数です。バイナリ データ型の場合、列サイズはデータの長さ (バイト単位) として定義されます。 時刻、タイムスタンプ、およびすべての間隔データ型の場合、これは、このデータの文字表現の文字数です。 各簡潔な SQL データ型に定義されている列サイズを次の表に示します。

SQL 型識別子 列のサイズ
すべての文字型 [a],[b] 列またはパラメーターの定義済みまたは最大列サイズ (SQL_DESC_LENGTH記述子フィールドに含まれる)。 たとえば、CHAR(10) として定義されている 1 バイト文字列の列サイズは 10 です。
SQL_DECIMAL SQL_NUMERIC 定義された桁数。 たとえば、NUMERIC(10,3) として定義された列の有効桁数は 10 です。
SQL_BIT[c] 1
SQL_TINYINT[c] 3
SQL_SMALLINT[c] 5
SQL_INTEGER[c] 10
SQL_BIGINT[c] 19 (署名されている場合) または 20 (符号なしの場合)
SQL_REAL[c] 7
SQL_FLOAT[c] 15
SQL_DOUBLE[c] 15
すべてのバイナリ型[a],[b] 列またはパラメーターの定義済みまたは最大長 (バイト単位)。 たとえば、BINARY(10) として定義されている列の長さは 10 です。
SQL_TYPE_DATE[c] 10 ( yyyy-mm-dd 形式の文字数)。
SQL_TYPE_TIME[c] 8 (h-mm-ss 形式の文字数)、または 9 + (h:mm:ss[.fff...] 形式の文字数。ここで、は秒の有効桁数です)。
SQL_TYPE_TIMESTAMP 16 ( yyyy-mm-dd hh:mm 形式の文字数)

19 ( yyyy-mm-dd hh:mm:ss 形式の文字数)

または

20 + (yyyy-mm-dd hh:mm:ss[.fff...] 形式の文字数。ここで、s は秒の有効桁数です)。
SQL_INTERVAL_SECOND ここで p は、有効桁数と の間隔です 秒の有効桁数、 p ( s=0 の場合) または p+s+1 ( s>0)。d]
SQL_INTERVAL_DAY_TO_SECOND ここでpは、有効桁数との間隔です秒の有効桁数、9 +p (s=0 の場合) または 10 +p+s (>0)。d]
SQL_INTERVAL_HOUR_TO_SECOND ここでpは、有効桁数との間隔です秒の有効桁数、6 +p (s=0 の場合) または 7 +p+s (>0)。d]
SQL_INTERVAL_MINUTE_TO_SECOND ここで p は、有効桁数と の間隔です 秒の有効桁数、3 +p ( s=0 の場合) または 4 +p+s ( s>0)。d]
SQL_INTERVAL_YEAR SQL_INTERVAL_MONTH SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE p。ここで、 p は間隔の先頭の有効桁数です。[d]
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR 3 + p。ここで、 p は間隔の先頭の有効桁数です。[d]
SQL_INTERVAL_DAY_TO_MINUTE 6 + p。ここで、 p は間隔の先頭の有効桁数です。[d]
SQL_INTERVAL_HOUR_TO_MINUTE 3 + p。ここで、 p は間隔の先頭の有効桁数です。[d]
SQL_GUID 36 ( aaaaaa-bbbb-cccc-dddd-eeeeeeeee 形式の文字数)

[a] ODBC 2.0 ドライバーで SQLSetParam を呼び出す ODBC 1.0 アプリケーションの場合、 ODBC 1.0 ドライバーで SQLBindParameter を呼び出す ODBC 2.0 アプリケーションの場合、*StrLen_or_IndPtr がSQL_LONGVARCHARまたはSQL_LONGVARBINARY型にSQL_DATA_AT_EXECされている場合は、 ColumnSize 送信するデータの合計長に設定する必要があります。 は、この表で定義されている有効桁数ではありません。

[b] ドライバーが変数型の列またはパラメーターの長さを判断できない場合は、SQL_NO_TOTALを返します。

[c] このデータ型では、SQLBindParameterColumnSize 引数は無視されます。

[d] 間隔データ型の列長に関する一般的な規則については、この付録の「 Interval データ型の長さ」を参照してください。

列 (またはパラメーター) のサイズに対して返される値は、1 つの記述子フィールドの値に対応していません。 値は、次の表に示すように、データの種類に応じて、SQL_DESC_PRECISIONまたはSQL_DESC_LENGTHフィールドから取得できます。

SQL 型 に対応する記述子フィールド

列またはパラメーターのサイズ
すべての文字型とバイナリ型 LENGTH
すべての数値型 PRECISION
すべての datetime 型と interval 型 LENGTH
SQL_BIT LENGTH