転送オクテット長

列の転送オクテット長は、データが既定の C データ型に転送されるときにアプリケーションに返される最大バイト数です。 文字データの場合、転送オクテット長には null 終了文字のスペースは含まれません。 列の転送オクテット長は、データ ソースにデータを格納するために必要なバイト数と異なる場合があります。

ODBC SQL データ型ごとに定義されている転送オクテット長を次の表に示します。

SQL 型識別子 長さ
すべての文字の種類[a] 列の定義された長さまたは最大 (可変長の場合) の長さ (バイト単位)。 これは、記述子フィールドSQL_DESC_OCTET_LENGTHと同じ値です。
SQL_DECIMAL
SQL_NUMERIC
文字セットが ANSI の場合は、このデータの文字表現を保持するために必要なバイト数。文字セットが UNICODE の場合は、この数値の 2 倍。 これは、データが文字列として返され、数字、記号、および小数点に必要な文字であるため、最大桁数に 2 を加算したものです。 たとえば、NUMERIC(10,3) として定義された列の転送長は 12 です。
SQL_TINYINT 1
SQL_SMALLINT 2
SQL_INTEGER 4
SQL_BIGINT 8
SQL_REAL 4
SQL_FLOAT 8
SQL_DOUBLE 8
SQL_BIT 1
すべてのバイナリ型 [a] 定義された (固定型の場合) または最大 (変数型の場合) 文字数を保持するために必要なバイト数。
SQL_TYPE_DATE
SQL_TYPE_TIME
6 (SQL_DATE_STRUCTまたはSQL_TIME_STRUCT構造体のサイズ)。
SQL_TYPE_TIMESTAMP 16 (SQL_TIMESTAMP_STRUCT構造体のサイズ)。
すべての間隔データ型 34 (間隔構造のサイズ)。
SQL_GUID 16 (GUID 構造体のサイズ)。

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