Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El diseño de las API odbc es similar a otras API de ISAM. Las API se basan en el identificador. Después de abrir un archivo, la aplicación puede determinar el tamaño del búfer necesario para almacenar una fila, usar las API de cursores para mover y, además, recuperar una o más filas de datos mediante el enlace de nivel de fila.
Los datos se convierten en tipos de datos SQL predeterminados, tal como se define en ODBC. En la tabla siguiente se enumeran estas conversiones.
Tipo de datos DB2 | Tipo de datos SQL predeterminado | Expuesto como tipo nativo en SQLGetTypeInfo | Comentarios |
---|---|---|---|
BIGINT | Un entero de 8 bytes. Este tipo de dato es compatible con DB2 UDB únicamente. |
||
BLOB | Un objeto binario grande (BLOB) es una cadena de longitud variable que puede tener hasta 2 GB de longitud. Su finalidad principal es almacenar datos binarios. El controlador ODBC para DB2 no admite este tipo de datos. |
||
CHAR (BIT) | SQL_BINARY | No | Cadena de caracteres de longitud fija (solo de doble byte). |
CHAR (SBCS) | SQL_CHAR | Sí | Una cadena de caracteres SBCS de longitud fija. |
CHAR (MIXED) | SQL_CHAR | No | Cadena de caracteres mixto de longitud fija (single y double byte). |
CLOB | Un objeto grande de caracteres (CLOB) es una cadena de longitud variable que puede tener hasta 2 GB de longitud. El CLOB se usa para almacenar datos de juegos de caracteres grandes de un byte. El CLOB se considera una cadena de caracteres. El controlador ODBC para DB2 no admite este tipo de datos. |
||
DATE | SQL_TYPE_DATE | Sí | Una cadena de fecha de 10 bytes. Este tipo de datos se convierte en un SQL_DATE para su uso por ODBC. |
DBCLOB | Un objeto grande de Double-Byte carácter (DBCLOB) es una cadena de longitud variable de caracteres de doble byte que puede tener hasta 2 gigabytes de longitud (1.073.741.823 caracteres de doble byte). DbCLOB se usa para almacenar datos grandes de juego de caracteres de doble byte. Un DBCLOB se considera una cadena gráfica. No es compatible con ODBC Driver for DB2. |
||
DECIMAL | SQL_DECIMAL | Sí | Un número decimal agrupado. |
DOUBLE | SQL_DOUBLE | Sí | Un número de punto flotante de doble precisión de 8 bytes. |
FLOAT | SQL_FLOAT | Sí | Un número de punto flotante de doble precisión de 8 bytes. Este tipo de dato es el mismo que DOUBLE. |
GRAPHIC (DBCS) | SQL_CHAR | No | Cadena gráfica de longitud fija que consta de una secuencia de datos de cadena de caracteres de doble byte (solo DBCS). |
INTEGER | SQL_INTEGER | Sí | Entero de 4 bytes con una precisión de 10 dígitos que van desde -2.147.463.648 hasta +2.147.483.647. |
LONG VARCHAR (BIT) | SQL_BINARY | No | Cadena de caracteres de longitud variable (solo de doble byte). |
LONG VARCHAR (SBCS) | SQL_CHAR | No | Cadena de caracteres SBCS de longitud variable. |
LONG VARCHAR (MIXED) | SQL_CHAR | No | Cadena de caracteres mixtos de longitud variable (single y double byte). |
LONG VARGRAPHIC (DBCS) | SQL_LONGVARCHAR | No | Cadena gráfica de longitud variable que consta de una secuencia de datos de cadena de caracteres de doble byte (solo DBCS). |
SMALLINT | SQL_SMALLINT | Sí | SMALLINT (entero pequeño) es un entero de dos bytes con una precisión de 5 dígitos que oscilan entre -32.768 y +32.767. |
REAL | SQL_REAL | Sí | Un número de punto flotante de precisión simple de 4 bytes. |
TIME | SQL_TYPE_TIME | Sí | Una cadena de tiempo de 8 bytes. Al usar objetos de datos ActiveX para devolver datos desde tipos de datos DB2 TIME, ADO devuelve un valor DATETIME. |
TIMESTAMP | SQL_TYPE_TIMESTAMP | Sí | Una cadena de 26 bytes que representa la fecha, la hora y los microsegundos. |
VARCHAR (BIT) | SQL_BINARY | No | Cadena de caracteres de longitud variable (solo de doble byte). |
VARCHAR (SBCS) | SQL_CHAR | Sí | Una cadena de caracteres de longitud variable. |
VARCHAR (MIXED) | SQL_CHAR | No | Cadena de caracteres mixta de longitud variable (single y double bye). |
VARGRAPHIC (DBCS) | SQL_VARCHAR | No | Cadena gráfica de longitud variable que consta de una secuencia de datos de cadena de caracteres de doble byte (solo DBCS). |
No todas las plataformas y versiones de DB2 admiten todos los tipos de datos a los que se hace referencia anteriormente. Consulte su referencia de IBM SQL para conocer el destino y la plataforma y la versión específicos de DB2.
El controlador ODBC para DB2 expone solo los tipos de datos DB2 seleccionados como tipos nativos en la función de catálogo ODBC GetTypeInfo. Por ejemplo, el controlador no expone los tipos LONG CHARACTER o VARYING LONG CHARACTER. En su lugar, estos tipos se exponen como CHARACTER y VARYING CHARACTER respectivamente. Además, el controlador expone CHARACTER FOR SBCS DATA, CHARACTER FOR MIXED DATA y CHARACTER FOR BIT DATA como CHARACTER. El controlador expone VARYING CHARACTER FOR SBCS DATA, VARYING CHARACTER FOR MIXED DATA y VARYING CHARACTER FOR BIT DATA como VARYING CHARACTER. Sin embargo, ODBC Driver for DB2 devuelve estos tipos de datos LONG y VARYING LONG si se lee una tabla con estos tipos de datos. Por ejemplo, al leer una tabla con una cadena de caracteres variable de longitud superior a 254 bytes, ODBC Driver for DB2 devuelve un LONG VARCHAR.
La longitud máxima de los tipos de datos de cadena de caracteres y gráficos DB2 depende de la plataforma y la versión de DB2. Por ejemplo, un tipo CHAR en DB2 para z/OS V5R1 tiene una longitud máxima de 254 bytes, mientras que un tipo CHAR en DB2/400 V4R4 tiene una longitud máxima de 32 766 bytes.
Se admiten conversiones de datos de un tipo numérico grande a un tipo numérico pequeño (de DOUBLE a SINGLE y de INT a SMALLINT, por ejemplo), sin embargo, se pueden producir errores de truncamiento y conversión que no notificará el controlador ODBC para DB2.
Con el controlador ODBC para DB2, ciertas conversiones de cadenas de EBCDIC a ASCII y, a continuación, vuelven a EBCDIC son asimétricas y pueden dar lugar a cadenas que son diferentes del original. La especificación EBCDIC contiene ordinales para los que no existen caracteres definidos. El controlador ODBC para DB2 traduce todos estos caracteres no definidos al carácter de signo de interrogación ("?"). Por lo tanto, cuando las cadenas ASCII que contienen estos caracteres se convierten de nuevo en EBCDIC, estos caracteres no definidos se reemplazan por signos de interrogación. A fin de proteger las cadenas EBCDIC que contienen caracteres no definidos, estos campos se deben etiquetar como cadenas binarias y la aplicación debe asignarlos.
Las conversiones de caracteres ANSI a EBCDIC afectadas incluyen lo siguiente:
Valor de carácter (decimal) | Valor de carácter (hexadecimal) | Código ANSI, página 1252 | Carácter EBCDIC tras la conversión a CCSID 37 |
---|---|---|---|
128 | 0x80 | No se usa | ? |
130 | 0x82 | Comilla simple baja | ? |
131 | 0x83 | F latina con gancho | ? |
132 | 0x84 | Comilla doble baja | ? |
133 | 0x85 | Puntos suspensivos | ? |
134 | 0x86 | Cruz | ? |
135 | 0x87 | Cruz doble | ? |
136 | 0x88 | Por mil | ? |
137 | 0x89 | S con acento circunflejo | ? |
138 | 0x8A | Corchete angular izquierdo | ? |
139 | 0x8B | Ligadura OE | ? |
140 | 0x8C | No se usa | ? |
142 | 0x8E | No se usa | ? |
145-156 | 0x91-0x9C | ? | |
158-159 | 0x9E-0x9F | ? |