Compartir a través de


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 basa una puerta de enlace a Rdb en Microsoft Open Data Services 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 que se interfazba 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 parsea la información de error adjunta a la declaración de error por el gateway.

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."