La tabla siguiente complementa la información incluida en el capítulo 7, "Procedimientos almacenados", en el capítulo 15, "Escritura de funciones definidas por el usuario y métodos" y en el capítulo 20, "Programación en C y C++". La tabla lista las correlaciones soportadas entre tipos de datos SQL y tipos de datos C para procedimientos almacenados, UDF y métodos.
Tabla 22. Tipos de datos SQL correlacionados con declaraciones C/C++
Tipo de columna SQL | Tipo de datos C/C++ | Descripción del tipo de columna SQL |
---|---|---|
SMALLINT (500 ó 501) | sqlint16 | entero con signo de 16 bits |
INTEGER (496 ó 497) | sqlint32 | entero con signo de 32 bits |
BIGINT (492 ó 493) | sqlint64 | entero con signo de 64 bits |
REAL (480 ó 481) | float | Coma flotante de precisión simple |
DOUBLE (480 ó 481) | double | Coma flotante de precisión doble |
DECIMAL(p,s) (484 ó 485) | No soportado. |
Para pasar un valor decimal, defina el parámetro como de tipo de datos
moldeable de DECIMAL (por ejemplo, CHAR o DOUBLE) y moldee explícitamente el
argumento para este tipo.
|
CHAR(n) (452 ó 453) | char[n+1] donde n es suficientemente grande
para contener los datos
1<=n<=254 | Serie de caracteres de longitud fija terminada en nulo |
CHAR(n) FOR BIT DATA (452 ó 453) | char[n+1] donde n es suficientemente grande
para contener los datos
1<=n<=254 | Serie de caracteres de longitud fija |
VARCHAR(n) (448 ó 449) (460 ó 461) | char[n+1] donde n es suficientemente grande
para contener los datos
1<=n<=32 672 | Serie de longitud variable terminada en nulo |
VARCHAR(n) FOR BIT DATA (448 ó 449) |
struct { sqluint16 longitud char[n] } 1<=n<=32 672 | Serie de caracteres de longitud variable no terminada en nulo |
LONG VARCHAR (456 ó 457) |
struct { sqluint16 longitud char[n] } 32 673<=n<=32 700 | Serie de caracteres de longitud variable no terminada en nulo |
CLOB(n) (408 ó 409) |
struct { sqluint32 longitud; char datos[n]; } 1<=n<=2 147 483 647 | Serie de caracteres de longitud variable no terminada en nulo con indicador de longitud de serie de 4 bytes |
BLOB(n) (404 ó 405) |
struct { sqluint32 longitud; char datos[n]; } 1<=n<=2 147 483 647 | Serie binaria variable no terminada en nulo con indicador de longitud de serie de 4 bytes |
DATE (384 ó 385) | char[11] | formato de caracteres terminado en nulo |
TIME (388 ó 389) | char[9] | formato de caracteres terminado en nulo |
TIMESTAMP (392 ó 393) | char[27] | formato de caracteres terminado en nulo |
| ||
GRAPHIC(n) (468 ó 469) | sqldbchar[n+1] donde n es suficientemente
grande para contener los datos
1<=n<=127 | Serie de caracteres de doble byte de longitud fija terminada en nulo |
VARGRAPHIC(n) (400 ó 401) | sqldbchar[n+1] donde n es suficientemente
grande para contener los datos
1<=n<=16 336 | Serie de caracteres de doble byte de longitud variable no terminada en nulo |
LONG VARGRAPHIC (472 ó 473) |
struct { sqluint16 longitud sqldbchar[n] } 16 337<=n<=16 350 | Serie de caracteres de doble byte de longitud variable no terminada en nulo |
DBCLOB(n) (412 ó 413) |
struct { sqluint32 longitud; sqldbchar data[n]; } 1<=n<=1 073 741 823 | Serie de caracteres de longitud variable no terminada en nulo con indicador de longitud de serie de 4 bytes |