Compartir a través de


Transferir la longitud en octetos

La longitud del octeto de transferencia de una columna es el número máximo de bytes devueltos a la aplicación cuando los datos se transfieren a su tipo de datos C predeterminado. Para los datos de caracteres, la longitud del octeto de transferencia no incluye espacio para el carácter de terminación NULL. La longitud del octeto de transferencia de una columna puede ser diferente del número de bytes necesarios para almacenar los datos en el origen de datos.

La longitud del octeto de transferencia definida para cada tipo de datos SQL ODBC se muestra en la tabla siguiente.

Identificador de tipo SQL Longitud
Todos los tipos de caracteres[a] Longitud definida o máxima (para tipo variable) de la columna en bytes. Este es el mismo valor que el campo descriptor SQL_DESC_OCTET_LENGTH.
SQL_DECIMAL
SQL_NUMERIC
Número de bytes necesarios para contener la representación de caracteres de estos datos si el juego de caracteres es ANSI y dos veces este número si el juego de caracteres es UNICODE. Este es el número máximo de dígitos más dos, porque los datos se devuelven como una cadena de caracteres y se necesitan caracteres para los dígitos, un signo y un separador decimal. Por ejemplo, la longitud de transferencia de una columna definida como NUMERIC(10,3) es 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
Todos los tipos binarios[a] Número de bytes necesarios para contener el número definido (para tipos fijos) o el número máximo (para tipos variables) de caracteres.
SQL_TYPE_DATE
SQL_TYPE_TIME
6 (tamaño de la estructura SQL_DATE_STRUCT o SQL_TIME_STRUCT).
SQL_TYPE_TIMESTAMP 16 (tamaño de la estructura SQL_TIMESTAMP_STRUCT).
Todos los tipos de datos de intervalo 34 (el tamaño de la estructura de intervalo).
SQL_GUID 16 (tamaño de la estructura GUID).

[a] Si el controlador no puede determinar la longitud de columna o parámetro para los tipos de variables, devuelve SQL_NO_TOTAL.