El último parámetro - IndicatorValue - de la función de CLI SQLBindFileToParam() se documenta actualmente como "salida (diferida)". Debe ser "entrada (diferida)".
Las actualizaciones siguientes son añadidos a la columna "Descripción" de los argumentos SQL_DESC_AUTO_UNIQUE_VALUE y SQL_DESC_UPDATABLE:
El texto siguiente sustituye la frase actual que aparece en la columna Explicación para SQLSTATE 22007 de la tabla SQLSTATE para SQLGetData:
Se ha indicado la conversión de una serie a un formato de fecha y hora, pero se ha especificado un valor o una representación de serie no válido o el valor era una fecha no válida.
La información siguiente corrige la información contenida en la sección "Uso" del apartado "Información devuelta por SQLGetInfo":
La información siguiente corrige la nota al pie de la "Tabla 113. Argumentos de SQLGetLength" :
Nota: a Está en los caracteres para datos DBCLOB.
Debería añadirse el texto siguiente al Capítulo 5, "Funciones CLI de DB2":
Especificación: DB2 CLI 7.x
SQLRETURN SQLNextResult (SQLHSTMT StatementHandle1 SQLHSTMT StatementHandle2);
Tabla 13. Argumentos de SQLNextResult
Tipo de datos | Argumento | Utilización | Descripción |
---|---|---|---|
SQLHSTMT | StatementHandle | entrada | Descriptor de contexto de sentencias. |
SQLHSTMT | StatementHandle | entrada | Descriptor de contexto de sentencias. |
Un procedimiento almacenado devuelve varios conjuntos de resultados dejando uno o más cursores abiertos después de salir. Al primer conjunto de resultados se accede siempre utilizando el descriptor de contexto de sentencias que llamó al procedimiento almacenado. Si se devuelven varios conjuntos de resultados, puede utilizarse SQLMoreResults() o SQLNextResult() para describir y captar el conjunto de resultados.
SQLMoreResults() se utiliza para cerrar el cursor para el primer conjunto de resultados y permitir que se procese el conjunto de resultados siguiente, en tanto que SQLNextResult() desplaza el siguiente conjunto de resultados a StatementHandle2, sin cerrar el cursor en StatementHandle1. Ambas funciones devuelven SQL_NO_DATA_FOUND si no hay conjuntos de resultados que haya que captar.
La utilización de SQLNextResult() permite el proceso de los conjuntos de resultados en el orden que sea una vez se hayan transferido a otros descriptores de contexto de sentencias. Las llamadas mixtas a SQLMoreResults() y SQLNextResult() se permiten hasta que no haya más cursores (conjuntos de resultados abiertos) en StatementHandle1.
Cuando SQLNextResult() devuelve SQL_SUCCESS, el conjunto de resultados siguiente ya no está asociado con StatementHandle1. En su lugar, el conjunto de resultados siguiente se asocia con StatementHandle2, como si una llamada a SQLExecDirect() hubiera acabado de ejecutar satisfactoriamente una consulta sobre StatementHandle2. Por tanto, el cursor puede describirse utilizando SQLNumResultSets(), SQLDescribeCol() o SQLColAttribute().
Una vez se ha llamado a SQLNextResult(), el conjunto de resultados que en este momento está asociado con StatementHandle2 se elimina de la cadena de conjuntos de resultados restantes y no podrá utilizarse de nuevo ni en SQLNextResult() ni en SQLMoreResults(). Esto significa que para 'n' conjuntos de resultados, SQLNextResult() puede llamarse satisfactoriamente como máximo 'n-1' veces.
Si SQLFreeStmt() se llama con la opción SQL_CLOSE, o SQLFreeHandle() se llama con HandleType establecido en SQL_HANDLE_STMT, se descartan todos los conjuntos de resultados pendientes sobre este descriptor de contexto de sentencias.
SQLNextResult() devuelve SQL_ERROR si StatementHandle2 tiene un cursor abierto o StatementHandle1 y StatementHandle2 no están en la misma conexión. Si se devuelve algún error o aviso, SQLError() debe llamarse siempre en StatementHandle1.
Tabla 14. Los SQLSTATE de SQLNextResult
SQLSTATE | Descripción | Explicación |
---|---|---|
40003 08S01 | Anomalía de enlace de comunicaciones. | El enlace de comunicaciones entre la aplicación y la fuente de datos ha fallado antes de que se completara la función. |
58004 | Anomalía de sistema inesperada. | Error de sistema irrecuperable. |
HY001 | Anomalía de asignación de memoria. | DB2 CLI no ha podido asignar la memoria necesaria para dar soporte a la ejecución o cumplimentación de la función. |
HY010 | Error de secuencia de función. |
La función se ha llamado mientras estaba en una operación de datos al ejecutar (SQLParamData(), SQLPutData()). StatementHandle2 tiene un cursor abierto asociado al mismo.
La función se llamó mientras estaba dentro de una operación BEGIN COMPOUND
y END COMPOUND SQL.
|
HY013 | Error de manejo de memoria inesperado. | DB2 CLI no ha podido acceder a la memoria necesaria para dar soporte a la ejecución o cumplimentación de la función. |
HYT00 | Ha caducado el tiempo de espera excedido. | El tiempo de espera ha caducado antes de que la fuente de datos devolviera el conjunto de resultados. Los tiempos de espera excedidos sólo están soportados en sistemas no multitarea como por ejemplo 3.1 y Macintosh System 7. El período de tiempo de espera puede establecerse utilizando el atributo SQL_ATTR_QUERY_TIMEOUT para SQLSetConnectAttr(). |
Para las consultas parametrizadas sólo puede utilizarse SQLMoreResults().
A continuación, se describe un atributo de entorno adicional que pertenece a la sección acerca de los atributos de entorno, del apartado sobre utilización:
La información siguiente sustituye la información existente para el atributo de sentencia SQL_ATTR_QUERY_TIMEOUT: