Comparteix via


Reglas de gestión de diagnóstico

Las reglas siguientes rigen el control de diagnóstico en SQLGetDiagRec y SQLGetDiagField.

Para todos los componentes ODBC:

  • No debe reemplazar, modificar ni enmascarar errores ni advertencias recibidos de otro componente ODBC.

  • Puede agregar un registro de estado adicional cuando reciben un mensaje de diagnóstico de otro componente ODBC. El registro agregado debe agregar un valor de información real al mensaje original.

Para el componente ODBC que interactúa directamente con un origen de datos:

  • Debe prefijar su identificador de proveedor, su identificador de componente y el identificador del origen de datos al mensaje de diagnóstico que recibe del origen de datos.

  • Debe conservar el código de error nativo del origen de datos.

  • Debe conservar el mensaje de diagnóstico del origen de datos.

Para cualquier componente ODBC que genere un error o advertencia independientemente del origen de datos:

  • Debe proporcionar el SQLSTATE correcto para el error o la advertencia.

  • Debe generar el texto del mensaje de diagnóstico.

  • Debe prefijar su identificador de proveedor y su identificador de componente al mensaje de diagnóstico.

  • Debe devolver un código de error nativo, si uno está disponible y significativo.

Para el componente ODBC que interactúa con el Administrador de controladores:

  • Debe inicializar los argumentos de salida de SQLGetDiagRec y SQLGetDiagField.

  • Debe dar formato y devolver la información de diagnóstico como argumentos de salida de SQLGetDiagRec y SQLGetDiagField cuando se llama a esa función.

Para un componente ODBC distinto del Administrador de controladores:

  • Debe establecer SQLSTATE en función del error nativo. Para los controladores basados en archivos y los controladores basados en DBMS que no usan una puerta de enlace, el controlador debe establecer SQLSTATE. En el caso de los controladores basados en DBMS que usan una puerta de enlace, el controlador o una puerta de enlace que admita ODBC pueden establecer SQLSTATE.