Mensajes de diagnóstico
Se devuelve un mensaje de diagnóstico con cada SQLSTATE. El mismo SQLSTATE se devuelve a menudo con varios mensajes diferentes. Por ejemplo, SQLSTATE 42000 (Error de sintaxis o infracción de acceso) se devuelve para la mayoría de los errores de sintaxis SQL. Sin embargo, es probable que cada error de sintaxis se describa con un mensaje diferente.
En la columna Error de la tabla de SQLSTATEs del Apéndice A y en cada función se enumeran ejemplos de mensajes de diagnóstico. Aunque los controladores pueden devolver estos mensajes, es más probable que devuelvan cualquier mensaje que les pase el origen de datos.
Las aplicaciones suelen mostrar mensajes de diagnóstico al usuario, junto con el SQLSTATE y el código de error nativo. Esto ayuda al usuario y al personal de soporte a determinar la causa de cualquier problema. La información del componente incluida en el mensaje es especialmente útil para ello.
Los mensajes de diagnóstico proceden de los orígenes de datos y los componentes de una conexión ODBC, como los controladores, las puertas de enlace y el Administrador de controladores. Por lo general, las fuentes de datos no admiten directamente ODBC. Por ello, si un componente en una conexión ODBC recibe un mensaje de un origen de datos, debe identificar el origen de datos como el origen del mensaje. También debe identificarse a sí mismo como el componente que recibió el mensaje.
Si el origen de un error o advertencia es el propio componente, el mensaje de diagnóstico debe explicarlo. Por lo tanto, el texto de los mensajes tiene dos formatos diferentes. Para los errores y advertencias que no se producen en un origen de datos, el mensaje de diagnóstico debe usar este formato:
[ vendor-identifier ][ ODBC-component-identifier ] component-supplied-text
Para los errores y advertencias que se producen en un origen de datos, el mensaje de diagnóstico debe usar este formato:
[ vendor-identifier ][ ODBC-component-identifier ][ data-source-identifier ] data-source-supplied-text
La siguiente tabla muestra el significado de cada elemento.
Elemento | Significado |
---|---|
vendor-identifier | Identifica el proveedor del componente en el que se produjo el error o la advertencia o que recibió el error o la advertencia directamente del origen de datos. |
ODBC-component-identifier | Identifica el componente en el que se produjo el error o la advertencia o que recibió el error o la advertencia directamente del origen de datos. |
data-source-identifier | Identifica el origen de datos. En el caso de los controladores basados en archivos, suele tratarse de un formato de archivo, como Xbase[1] En el caso de los controladores basados en DBMS, se trata del producto DBMS. |
component-supplied-text | Generado por el componente ODBC. |
data-source-supplied-text | Generado por el origen de datos. |
[1] En este caso, el controlador actúa a la vez como controlador y como origen de datos.
Los corchetes ([ ]) deben incluirse obligatoriamente en el mensaje y no indican elementos opcionales.