Especificación: | CLI de DB2 5.0 | ODBC 3.0 |
|
SQLGetDiagRec() devuelve el valor actual del campo SQLSTATE de un registro de diagnóstico que contiene información sobre errores, avisos y estados.
Antes de invocar esta función se debe asignar un descriptor de conexión utilizando SQLAllocHandle().
Sintaxis
SQLRETURN SQLGetDiagRec (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *SQLState, SQLINTEGER *NativeErrorPtr, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLengthPtr);
Argumentos de la función
Tabla 68. Argumentos de SQLGetDiagRec
Tipo de datos | Argumento | Uso | Descripción |
---|---|---|---|
SQLSMALLINT | HandleType | entrada | Identificador del tipo de descriptor de contexto que describe el tipo de descriptor de contexto para el cual se desea información de diagnóstico. Puede ser SQL_HANDLE_STMT o SQL_HANDLE_DBC. |
SQLHANDLE | Handle | entrada | Descriptor de contexto correspondiente a la estructura de datos de diagnóstico; su tipo está indicado por HandleType. |
SQLSMALLINT | RecNumber | entrada | Indica el registro de estado en el que la aplicación busca información. Su valor debe ser 1. |
SQLCHAR | SQLState | salida | Puntero que apunta a un almacenamiento intermedio en el que devolver un código SQLSTATE, de cinco caracteres, perteneciente al registro de diagnóstico RecNumber. Los primeros dos caracteres indican la clase; los tres siguientes indican la subclase. |
SQLINTEGER | NativeErrorPtr | salida | Puntero que apunta a un almacenamiento intermedio en el que devolver el código de error nativo, que es específico de la fuente de datos. |
SQLCHAR | MessageText | salida | Puntero que apunta a un almacenamiento intermedio en el que devolver el texto del mensaje de error. Los campos devueltos por SQLGetDiagRec() están contenidos en una serie de texto. |
SQLINTEGER | BufferLength | entrada | Longitud (en bytes) del almacenamiento intermedio MessageText. |
SQLSMALLINT | TextLengthPtr | salida | Puntero que apunta a un almacenamiento intermedio que contendrá el número total de bytes (excepto los bytes necesarios para el carácter de terminación en nulo) para devolver en MessageText. Si el número de bytes para devolver es mayor que BufferLength, el texto del mensaje de error contenido en MessageText se trunca hasta que su longitud sea BufferLength menos la longitud del carácter de terminación en nulo. |
Uso
Habitualmente una aplicación invoca SQLGetDiagRec() cuando una llamada anterior a una función de CLI de DB2 devuelve un código de retorno distinto de SQL_SUCCESS.
SQLGetDiagRec() devuelve una serie de caracteres que contiene varios campos del registro de la estructura de datos de diagnóstico.
El funcionamiento de SQLGetDiagRec() se ha ampliado en la Versión 8.1 de DB2 Everyplace. Ahora se pueden devolver los SQLSTATE siguientes: 57011, HY024, HY092, HY000, HY012. Para obtener más información sobre estos SQLSTATE, consulte el Listado de los SQLSTATE.
SQLGetDiagRec() recupera sólo la información de diagnóstico más reciente asociada al descriptor de contexto especificado en el argumento Handle. Si la aplicación invoca otra función, excepto SQLGetDiagRec(), se pierde la información de diagnóstico obtenida en llamadas anteriores para el mismo descriptor de contexto.
Argumento HandleType
Cada tipo de descriptor de contexto tiene información de diagnóstico asociada a él. El argumento HandleType indica el tipo del descriptor de contexto especificado en Handle. DB2 Everyplace soporta descriptores de contexto de sentencia y de conexión.
Códigos de retorno
Diagnósticos
SQLGetDiagRec() no notifica valores de error por sí mismo. Utiliza los valores de retorno siguientes para notificar el resultado de su propia ejecución:
Restricciones
Ninguna.
Consulta relacionada