Ejemplo de diagnóstico de controlador basados en archivos
Un controlador basado en archivos actúa como controlador ODBC y como origen de datos. Por lo tanto, puede generar errores y advertencias como componente en una conexión ODBC y como origen de datos. Dado que también es el componente que interactúa con el Administrador de controladores, da formato y devuelve argumentos para SQLGetDiagRec.
Por ejemplo, si un controlador de Microsoft para dBASE no pudo asignar memoria suficiente, podría devolver los siguientes valores de SQLGetDiagRec:
SQLSTATE: "HY001"
Native Error: 42052
Diagnostic Msg: "[Microsoft][ODBC dBASE Driver]Unable to allocate sufficient memory."
Dado que este error no estaba relacionado con el origen de datos, el controlador solo agregó prefijos al mensaje de diagnóstico del proveedor ([Microsoft]) y al controlador ([ODBC dBASE Driver]).
Si el controlador no pudo encontrar el archivo Employee.dbf, podría devolver los siguientes valores de SQLGetDiagRec:
SQLSTATE: "42S02"
Native Error: -1305
Diagnostic Msg: "[Microsoft][ODBC dBASE Driver][dBASE]No such table or object"
Dado que este error estaba relacionado con el origen de datos, el controlador agregó el formato de archivo del origen de datos ([dBASE]) como prefijo al mensaje de diagnóstico. Dado que el controlador también era el componente que accedía a la interfaz con el origen de datos, agregó prefijos para el proveedor ([Microsoft]) y el controlador ([ODBC dBASE Driver]).