Compartir vía


Ejemplo de diagnóstico de controladores basados en DBMS

Un controlador basado en DBMS envía solicitudes a un DBMS y devuelve información a la aplicación a través del Administrador de controladores. Como el controlador es el componente que interactúa con el Administrador de controladores, formatea y devuelve argumentos para SQLGetDiagRec.

Por ejemplo, si, al usar SQL/Services, un controlador de Microsoft para Oracle Rdb encuentra un nombre de cursor no válido, podría devolver los siguientes valores de SQLGetDiagRec:

SQLSTATE:         "34000"  
Native Error:      0  
Diagnostic Msg:   "[Microsoft][ODBC Rdb Driver]Invalid cursor name: EMPLOYEE_CURSOR."  

Como el error se produjo en el controlador, agregó prefijos al mensaje de diagnóstico para el proveedor ([Microsoft]) y el controlador ([ODBC Rdb Driver]).

Si el DBMS no pudo encontrar la tabla EMPLOYEE, el controlador podría formatear y devolver los siguientes valores de SQLGetDiagRec:

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

Como el error se produjo en el origen de datos, el controlador agregó un prefijo para el identificador del origen de datos ([Rdb]) al mensaje de diagnóstico. Como el controlador era el componente que interactuaba con el origen de datos, agregó prefijos para su proveedor ([Microsoft]) e identificador ([ODBC Rdb Driver]) al mensaje de diagnóstico.