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.