Ejemplo de diagnóstico de las puertas de enlace

En una arquitectura de puerta de enlace, un controlador envía solicitudes a una puerta de enlace que admite ODBC. La puerta de enlace envía las solicitudes a un DBMS. Dado que es el componente que interactúa con el Administrador de controladores, el controlador da formato y devuelve argumentos para SQLGetDiagRec.

Por ejemplo, si Oracle se basó en una puerta de enlace a Rdb en los Servicios abiertos de datos de Microsoft y si Rdb no pudo encontrar la tabla EMPLOYEE, la puerta de enlace podría generar este mensaje de diagnóstico:

"[42S02][-1][DEC][ODS Gateway][Rdb]%SQL-F-RELNOTDEF, Table EMPLOYEE is not defined "  
   "in schema."  

Dado que el error se produjo en el origen de datos, la puerta de enlace agregó un prefijo para el identificador del origen de datos ([Rdb]) al mensaje de diagnóstico. Dado que la puerta de enlace era el componente del que se realizaba la interfaz con el origen de datos, agregó prefijos para su proveedor ([DEC]) e identificador ([puerta de enlace ODS]) al mensaje de diagnóstico. También agregó el valor SQLSTATE y el código de error Rdb al principio del mensaje de diagnóstico. Esto le permitió conservar la semántica de su propia estructura de mensajes y seguir suministrando la información de diagnóstico ODBC al controlador. El controlador analiza la información de error adjunta a la instrucción de error por la puerta de enlace.

Dado que el controlador de puerta de enlace es el componente que interactúa con el Administrador de controladores, usaría el mensaje de diagnóstico anterior para dar formato y devolver los siguientes valores de SQLGetDiagRec:

SQLSTATE:         "42S02"  
Native Error:      -1  
Diagnostic Msg:   "[DEC][ODS Gateway][Rdb]%SQL-F-RELNOTDEF, Table EMPLOYEE is not "  
                  "defined in schema."