転送オクテット長
列の転送オクテット長は、データが既定の 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を返します。