Desarrollo de aplicaciones: Interfaz a nivel de llamada (CLI)

| | |

Palabra clave de configuración Trusted_Connection CLI/ODBC

|

|
|
Descripción de la palabra clave:
|
Permite una conexión a realizar con el usuario autentificado actual. |
|
Sintaxis:
|
Trusted_Connection=Yes | |
Nota:
|
Esta palabra clave no tiene efecto si se establece |en el archivo db2cli.ini. Debe en su lugar |proporcionar la serie de conexión a SQLDriverConnect().
|
|
Valor por omisión:
|
CLI de DB2 utilza el ID de usuario e información de contraseña proporcionada en la serie |de conexión a SQLDriverConnect(), no el usuario autentificado actual. |
|
Notas sobre la utilización:
|
|

Las aplicaciones CLI de DB2 que conectan a una base de datos típicamente se conectan |utilizando la función SQLDriverConnect(). Una de las entradas para esta función |es el valor DriverCompletion, que determina cuando se abrirá una ventana. Lo siguiente son valores de DriverCompletion :

| | |
Nota:
|
Más detalles sobre DriverCompletion se pueden encontrar |en la documentación para SQLDriverConnect().
|

Algunas aplicaciones, |por ejemplo, aquellas que están en un entorno Kerberos, podrían requerir que un usuario |pueda conectarse a un servidor DB2 UDB sin proporcionar un ID de usuario o contraseña. |Si la aplicación utiliza la opción SQL_DRIVER_NO_PROMPT en la llamada SQLDriverConnect(), |la conexión se intenta sin la autentificación de usuario. Esta palabra clave, entonces, |no es necesaria.

|

En el caso donde una aplicación de terceros esté involucrada |y el nivel de solicitud utilizado por la aplicación es en alguna cosa distinto de |SQL_DRIVER_NO_PROMPT, CLI de DB2 abre una ventana para solicitar la información que falta. |El establecer Trusted_Connection en Sí, proporcionándola a la serie de conexión |de entrada para SQLDriverConnect() ("Trusted_Connection=Yes"), ocasiona que CLI de DB2 |ignore cualquier ID de usuario o contraseña (incluyendo series en blanco) de la serie |de conexión e ignore el nivel de solicitud de la función de conexión. CLI de DB2 utiliza |el usuario autentificado actual para intentar la conexión a la base de datos. |Si el intento de conexión falla, se le solicita al usuario el ID y contraseña de usuario.

|

Se utiliza esta palabra clave sólo en la serie de conexión para SQLDriverConnect(); |estableciéndola en el archivo db2cli.ini no tiene efecto.

|
|

Actualización de la tabla de diagnósticos para la función SQLDescribeParam (CLI)

La función SQLDescribeParam() devuelve la descripción de un marcador de parámetros asociado a una sentencia de SQL preparada.

La tabla de diagnósticos se ha actualizado con SQLSTATE HYC00.

Diagnósticos

Tabla 24. Estados de SQL de SQLDescribeParam
SQLSTATE Descripción Explicación
HYC00 Controlador no apto No se puede acceder a los procedimientos almacenados de la función de esquema en el servidor. Instale los procedimientos almacenados de la función de esquema en el servidor y asegúrese de que sean accesibles.

Ejecución asíncrona de la Interfaz de nivel de llamada (CLI)

La Interfaz de nivel de llamada de DB2 (CLI de DB2) puede ejecutar un subconjunto de funciones de forma asíncrona. El controlador de CLI de DB2 devuelve el control a la aplicación después de llamar a la función, pero antes de que esa función finalice su ejecución. La función devuelve SQL_STILL_EXECUTING cada vez que se invoca y hasta que termine de ejecutarse, en cuyo momento devuelve un valor diferente (por ejemplo, SQL_SUCCESS).

La ejecución asíncrona es ventajosa solamente en los sistemas operativos de una sola hebra. Las aplicaciones que se ejecutan en sistemas operativos con varias hebras deben ejecutar las funciones en hebras separadas. La ejecución asíncrona es posible para aquellas funciones que normalmente envían una petición al servidor y luego esperan una respuesta. En lugar de esperar, una función que se ejecuta de forma asíncrona devuelve el control a la aplicación. La aplicación puede entonces realizar otras tareas, o devolver el control al sistema operativo, y utilizar una interrupción para sondear repetidamente la función hasta que se devuelva un código de retorno diferente de SQL_STILL_EXECUTING.

A partir de la Versión 8.2 FixPak 1 (equivalente a la Versión 8.1 FixPak 8), DB2 Universal Database (UDB) incluye soporte para la ejecución asíncrona de CLI. Para ver documentación sobre esta característica, consulte el Centro de información de DB2 UDB Versión 7, situado en http://publib.boulder.ibm.com/infocenter/db2v7luw/index.jsp. Toda la información contenida en la documentación de la Versión 7 es aplicable a la Versión 8.2 FixPak 1 (equivalente a la Versión 8.1 FixPak 8) y versiones posteriores. El Centro de información de DB2 UDB Versión 8 no contiene ninguna documentación sobre la ejecución asíncrona de CLI.

El atributo de conexión SQL_ATTR_PING_DB

SQL_ATTR_PING_DB (CLI de DB2 v8.2)

SQL_ATTR_PING_DB es un valor entero de 32 bits que se utiliza con la función SQLGetConnectAttr() para obtener el tiempo de respuesta de la red para la conexión existente entre el cliente DB2 UDB y el servidor DB2 UDB. El tiempo de respuesta se expresa en microsegundos.

Si previamente se ha establecido una conexión y ha sido cerrada por la base de datos, se devuelve el valor 0. Si la conexión ha sido cerrada por la aplicación, se devuelve el estado de SQL (SQLSTATE) 08003. Este atributo de conexión puede ser devuelto por SQLGetConnectAttr(), pero no puede ser definido por SQLSetConnectAttr(). Cualquier intento de definir este atributo dará como resultado el estado de SQL HYC00 (Controlador no apto).

La función SQLBindParameter (CLI)

En la documentación de la función SQLBindParameter, la descripción proporcionada en la sección Parámetro de entrada es incorrecta. La descripción correcta es la siguiente:

Parámetro de entrada
Un valor 0 para ColumnSize significa que la CLI de DB2 utilizará la longitud máxima para el tipo de SQL proporcionado como tamaño de la columna o parámetro de procedimiento almacenado. La CLI de DB2 realizará las conversiones necesarias utilizando este tamaño.

La función SQLMoreResults (CLI)

En la documentación de la función SQLMoreResults, el atributo de sentencia SQL_ATTR_ROW_ARRAY_SIZE está identificado incorrectamente. El atributo de sentencia correcto es SQL_ATTR_PARAMSET_SIZE. La sección Utilización debe decir lo siguiente:

Esta función se utiliza para devolver varios conjuntos de resultados de una manera secuencial después de la ejecución de:

Atributos de entorno adicionales

Además de ser atributos de conexión de CLI, los atributos siguientes también se pueden utilizar como atributos de entorno de CLI:

Para obtener información sobre estos atributos, consulte la documentación sobre los atributos de conexión de CLI en el Centro de información de DB2 o en la publicación CLI Guide and Reference Volume 2.

Requisito sobre cursores desplazables dinámicos

Para realizar actualizaciones y supresiones en filas de un conjunto de resultados del cursor desplazable dinámico, la sentencia UPDATE o DELETE debe incluir todas las columnas que tengan como mínimo una clave exclusiva en la tabla base. Puede ser la clave primaria o cualquier otra clave exclusiva.

La palabra de configuración RetCatalogAsCurrServer de CLI/ODBC

Descripción de la palabra clave:
Las funciones de catálogo devuelven el valor CURRENT SERVER en lugar del valor nulo para las columnas del catálogo.
Sintaxis de la palabra clave en db2cli.ini:
RetCatalogAsCurrServer= 0 | 1
Valor por omisión:
Si el DBMS de destino devuelve un valor nulo para las columnas del catálogo, en su lugar no se utilizará el valor CURRENT SERVER.
Notas sobre la utilización:
Si las funciones de catálogo del DBMS de destino devuelven un valor nulo para las columnas del catálogo, el establecer RetCatalogAsCurrServer en 1 hace que el DBMS devuelva el valor CURRENT SERVER en su lugar.

Por ejemplo, suponga que la función de catálogo SQLTables() devuelve un conjunto de resultados donde los valores de la columna TABLE_CAT son valores nulos. El establecer RetCatalogAsCurrServer en 1 hace que el DBMS devuelva el valor CURRENT SERVER en la columna TABLE_CAT.

Nota:
Esta palabra clave se puede utilizar con DB2 UDB para Linux, UNIX(R) y Windows(R) Versión 8.2 FixPak 3 (equivalente la Versión 8.1 FixPak 10) y versiones posteriores.

Palabra clave de configuración de CLI/ODBC ReceiveTimeout

Descripción de la palabra clave:
Especifique la hora en segundos de espera de una respuesta del servidor en una conexión establecida antes de terminar el intento y de generar un error de tiempo de espera excedido de comunicación.
Sintaxis de la palabra clave en db2cli.ini:
ReceiveTimeout = 0 | 1 | 2 | ... | 32767
Valor por omisión:
El cliente espera indefinidamente una respuesta del servidor en una conexión establecida.
Atributo de conexión equivalente:
SQL_ATTR_RECEIVE_TIMEOUT
Notas sobre la utilización:
El valor por omisión de 0 indica que el cliente espera indefinidamente una respuesta. El tiempo de espera excedido de recepción no tiene efecto alguno durante el establecimiento de la conexión; sólo está soportado para TCP/IP, y se omite para cualquier otro protocolo.

Atributo de conexión SQL_ATTR_RECEIVE_TIMEOUT

SQL_ATTR_RECEIVE_TIMEOUT (DB2 CLI v8)
Valor de entero de 32 bits que es el número de segundos que un cliente espera una respuesta del servidor en una conexión establecida antes de terminar el intento y generar un error de tiempo de espera excedido de comunicación. El valor por omisión es 0, que indica que el cliente espera indefinidamente una respuesta. El tiempo de espera excedido de recepción no tiene efecto alguno durante el establecimiento de la conexión; sólo está soportado para TCP/IP, y se omite para cualquier otro protocolo. Los valores soportados son números enteros del 0 al 32767.

Palabra clave de configuración de CLI/ODBC Reopt

Descripción de la palabra clave:
Habilita la optimización o reoptimización de consultas para sentencias de SQL que tienen registros especiales o marcadores de parámetros.
Sintaxis de la palabra clave en db2cli.ini:
Reopt = 2 | 3 | 4
Valor por omisión:
No se produce ninguna optimización de las consultas durante la ejecución de las consultas. Las estimaciones por omisión elegidas por el compilador se utilizan para registros especiales o marcadores de parámetros.
Atributo de conexión y sentencia equivalente:
SQL_ATTR_REOPT
Notas sobre la utilización:
La optimización se produce utilizando los valores disponibles en tiempo de ejecución de la consulta para los registros especiales o los marcadores de parámetros en lugar de las estimaciones por omisión que el compilador ha elegido. Los valores válidos de la palabra clave son: "NULLIDR1" y "NULLIDRA" son nombres de conjuntos de paquetes reservados, y cuando se utilizan, REOPT ONCE y REOPT ALWAYS se implican respectivamente. Estos conjuntos de paquetes tienen que crearse explícitamente con los mandatos que se muestran a continuación:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
Si se especifican tanto las palabras clave Reopt como CurrentPackageSet, CurrentPackageSet toma prioridad.

El atributo de conexión y la sentencia SQL_ATTR_REOPT

SQL_ATTR_REOPT (DB2 CLI v8)
Un valor de entero de 32 bits que habilita la optimización de consulta para sentencias de SQL que contienen registros especiales o marcadores de parámetros. La optimización se produce utilizando los valores disponibles durante el tiempo de ejecución de la consulta para los registros especiales o los marcadores de parámetros, en lugar de las estimaciones por omisión elegidas por el compilador. Los valores válidos del atributo son: "NULLIDR1" y "NULLIDRA" son nombres de conjuntos de paquetes reservados, y cuando se utilizan, REOPT ONCE y REOPT ALWAYS se implican respectivamente. Estos conjuntos de paquetes tienen que crearse explícitamente con estos mandatos:
db2 bind db2clipk.bnd collection NULLIDR1
db2 bind db2clipk.bnd collection NULLIDRA
SQL_ATTR_REOPT y SQL_ATTR_CURRENT_PACKAGE_SET son mutuamente exclusivos, y por consiguiente, si se establece uno, el otro no está permitido.

La palabra clave de configuración CurrentPackageSet de CLI/ODBC

Descripción de la palabra clave:
Emite la sentencia SET CURRENT PACKAGESET después de cada conexión.
Sintaxis de la palabra clave en db2cli.ini:
CurrentPackageSet = nombre de esquema
Valor por omisión:
La cláusula no se añade.
Atributo de conexión equivalente:
SQL_ATTR_CURRENT_PACKAGE_SET
Notas sobre la utilización:

Esta opción emite la sentencia SET CURRENT PACKAGESET SQL con el valor CurrentPackageSet después de cada conexión con una base de datos. Por omisión, esta cláusula no se añade.

La sentencia SET CURRENT PACKAGESET de SQL establece el nombre de esquema (identificador de la colección) que se utiliza para seleccionar el paquete que se utiliza para las sentencias de SQL posteriores.

Las aplicaciones CLI/ODBC emiten sentencias de SQL dinámico. Con esta opción puede controlar los privilegios que se utilizan para ejecutar estas sentencias:

Ahora las sentencias de SQL de las aplicaciones CLI/ODBC se ejecutarán bajo el esquema especificado y utilizarán los privilegios definidos allí.

Los siguientes nombres del conjunto de paquetes están reservados: "NULLID ", "NULLIDR1", "NULLIDRA".

Si se especifican tanto las palabras clave Reopt como CurrentPackageSet, CurrentPackageSet toma prioridad.

Atributo de conexión SQL_ATTR_CURRENT_PACKAGE_SET

SQL_ATTR_CURRENT_PACKAGE_SET (DB2 CLI v5)
Una serie de caracteres que termina con nulos que indica el nombre de esquema (identificador de colección) que se utiliza para seleccionar el paquete para las sentencias de SQL posteriores. El establecer este atributo hace que se emita la sentencia SET CURRENT PACKAGESET de SQL. Si se establece este atributo antes de una conexión, se emitirá la sentencia SET CURRENT PACKAGESET de SQL durante la conexión.

Las aplicaciones CLI/ODBC emiten sentencias de SQL dinámico. Con este atributo de conexión, puede controlar los privilegios que se utilizan para ejecutar estas sentencias:

Ahora las sentencias de SQL de las aplicaciones CLI/ODBC se ejecutarán bajo el esquema especificado y utilizarán los privilegios definidos allí.

Establecer la palabra de configuración de CLI/ODBC CURRENTPACKAGESET es un método alternativo para especificar el nombre de esquema.

Los siguientes nombres del conjunto de paquetes están reservados: "NULLID ", "NULLIDR1", "NULLIDRA".

SQL_ATTR_REOPT y SQL_ATTR_CURRENT_PACKAGE_SET son mutuamente exclusivos, y por consiguiente, si se establece uno, el otro no está permitido.

Palabra clave de configuración de CLI/ODBC MapBigintCDefault

Descripción de la palabra clave:
Especificar el tipo C por omisión de marcadores de parámetros y columnas BIGINT.
Sintaxis de la palabra clave en db2cli.ini:
MapBigintCDefault = 0 | 1 | 2
Valor por omisión:
La representación de tipo C por omisión para datos BIGINT es SQL_C_BIGINT.
Notas sobre la utilización:
 

MapBigintCDefault controla el tipo C que se utiliza cuando se especifica SQL_C_DEFAULT para marcadores de parámetros y columnas BIGINT. Esta palabra clave se debe utilizar principalmente con aplicaciones Microsoft, como Microsoft Access, que no pueden manejar enteros de 8 bytes. Establezca MapBigintCDefault del siguiente modo:

Esta palabra clave afecta al comportamiento de las funciones de CLI en las que SQL_C_DEFAULT se puede especificar como tipo C, como por ejemplo SQLBindParameter(), SQLBindCol() y SQLGetData().

Palabra clave de configuración de CLI/ODBC DescribeOutputLevel

Descripción de la palabra clave:
Establecer el nivel de información de descripción de la columna de salida solicitada por el controlador de CLI durante las solicitudes de preparación o de descripción.
Sintaxis de la palabra clave en db2cli.ini:
DescribeOutputLevel = 0 | 1 | 2 | 3
Valor por omisión:
Solicitar la información de descripción listada en el nivel 2 de la Tabla 25.
Notas sobre la utilización:
 

Esta palabra clave controla la cantidad de información que solicita el controlador de CLI en una solicitud de preparación o de descripción. Por omisión, cuando el servidor recibe una solicitud de descripción, devuelve la información contenida en el nivel 2 de la Tabla 25 para las columnas del conjunto de resultados. Sin embargo, es posible que una aplicación no necesite toda esta información o que necesite información adicional.

El establecimiento de la palabra clave DescribeOutputLevel en un nivel que se ajuste a los requisitos de la aplicación cliente puede mejorar el rendimiento porque los datos de descripción que se transfieren entre el cliente y el servidor se limitan a la cantidad mínima que necesita la aplicación. Si se establece para DescribeOutputLevel un valor demasiado bajo, puede afectar a la funcionalidad de la aplicación (en función de los requisitos de la aplicación). Las funciones de CLI para recuperar la información de descripción pueden no ajustarse a este caso, pero es posible que la información devuelta sea incompleta.

Los valores soportados para DescribeOutputLevel son los siguientes:

La tabla siguiente contiene los campos que forman la información de descripción que devuelve el servidor cuando recibe una solicitud de preparación o de descripción. Estos campos están agrupados en niveles, y la palabra clave de configuración de CLI/ODBC DescribeOutputLevel controla qué niveles de información de descripción solicita el controlador de CLI.

Nota:
No todos los niveles de información de descripción reciben soporte de todos los servidores de DB2. Todos los niveles de información de descripción reciben soporte en los siguientes servidores de DB2: DB2 Universal Database (UDB) para Linux , UNIX y Windows Versión 8 y posterior, DB2 UDB para z/OS Versión 8 y posterior y DB2 UDB para iSeries Versión 5 Release 3 y posterior. Los demás servidores de DB2 sólo dan soporte al valor 2 ó 0 para DescribeOutputLevel.
Tabla 25. Niveles de información de descripción
Nivel 1 Nivel 2 Nivel 3
SQL_DESC_COUNT
SQL_COLUMN_COUNT
SQL_DESC_TYPE
SQL_DESC_CONCISE_TYPE
SQL_COLUMN_LENGTH
SQL_DESC_OCTET_LENGTH
SQL_DESC_LENGTH
SQL_DESC_PRECISION
SQL_COLUMN_PRECISION
SQL_DESC_SCALE
SQL_COLUMN_SCALE
SQL_DESC_DISPLAY_SIZE
SQL_DESC_NULLABLE
SQL_COLUMN_NULLABLE
SQL_DESC_UNSIGNED
SQL_DESC_SEARCHABLE
SQL_DESC_LITERAL_SUFFIX
SQL_DESC_LITERAL_PREFIX
SQL_DESC_CASE_SENSITIVE
SQL_DESC_FIXED_PREC_SCALE
todos los campos del
nivel 1 y:
SQL_DESC_NAME
SQL_DESC_LABEL
SQL_COLUMN_NAME
SQL_DESC_UNNAMED
SQL_DESC_TYPE_NAME
SQL_DESC_DISTINCT_TYPE
SQL_DESC_REFERENCE_TYPE
SQL_DESC_STRUCTURED_TYPE
SQL_DESC_USER_TYPE
SQL_DESC_LOCAL_TYPE_NAME
SQL_DESC_USER_DEFINED_
         TYPE_CODE
todos los campos de los
niveles 1 y 2 y:
SQL_DESC_BASE_COLUMN_NAME
SQL_DESC_UPDATABLE
SQL_DESC_AUTO_UNIQUE_VALUE
SQL_DESC_SCHEMA_NAME
SQL_DESC_CATALOG_NAME
SQL_DESC_TABLE_NAME
SQL_DESC_BASE_TABLE_NAME
[ Principio de página |Página anterior | Página siguiente | Contenido ]