Exemple de diagnostic d’un pilote de SGBD
Un pilote SGBD envoie des requêtes à un SGBD et retourne des informations à l’application via le Gestionnaire de pilotes. Étant donné que le pilote est le composant qui interface avec le Gestionnaire de pilotes, il met en forme et retourne des arguments pour SQLGetDiagRec.
Par exemple, si, à l’aide de SQL/Services, un pilote Microsoft pour Oracle Rdb a rencontré un nom de curseur non valide, il peut renvoyer les valeurs suivantes à partir de SQLGetDiagRec :
SQLSTATE: "34000"
Native Error: 0
Diagnostic Msg: "[Microsoft][ODBC Rdb Driver]Invalid cursor name: EMPLOYEE_CURSOR."
Étant donné que l’erreur s’est produite dans le pilote, elle a ajouté des préfixes au message de diagnostic du fournisseur ([Microsoft]) et du pilote ([Pilote Rdb ODBC]).
Si le SGBD n’a pas trouvé le tableau EMPLOYEE, le pilote peut mettre en forme et retourner les valeurs suivantes à partir de SQLGetDiagRec :
SQLSTATE: "42S02"
Native Error: -1
Diagnostic Msg: "[Microsoft][ODBC Rdb Driver][Rdb] %SQL-F-RELNOTDEF, Table EMPLOYEE "
"is not defined in schema."
Étant donné que l’erreur s’est produite dans la source de données, le pilote a ajouté un préfixe pour l’identificateur de source de données ([Rdb]) au message de diagnostic. Étant donné que le pilote était le composant qui était interface avec la source de données, il a ajouté des préfixes pour son fournisseur ([Microsoft]) et son identificateur ([PILOTE Rdb ODBC]) au message de diagnostic.