Partager via


Exemple de diagnostic d'un pilote basé sur des fichiers

Un pilote basé sur des fichiers agit à la fois comme un pilote ODBC et comme une source de données. Par conséquent, il peut générer des erreurs et des avertissements à la fois comme composant d'une connexion ODBC et comme source de données. En effet, ce même composant assure également l'interface avec le gestionnaire de pilotes en formatant et en renvoyant les arguments pour SQLGetDiagRec.

Par exemple, si un pilote Microsoft conçu pour dBASE ne peut pas attribuer suffisamment de mémoire, il pourra renvoyer les valeurs ci-après à partir de SQLGetDiagRec :

SQLSTATE:         "HY001"  
Native Error:      42052  
Diagnostic Msg:   "[Microsoft][ODBC dBASE Driver]Unable to allocate sufficient memory."  

Cette erreur n'étant pas liée à la source de données, le pilote a uniquement ajouté des préfixes au message de diagnostic pour le fournisseur ([Microsoft]) et le pilote ([ODBC dBASE Driver]).

Si le pilote ne trouve pas le fichier Employee.dbf, il peut renvoyer les valeurs suivantes à partir de SQLGetDiagRec :

SQLSTATE:         "42S02"  
Native Error:      -1305  
Diagnostic Msg:   "[Microsoft][ODBC dBASE Driver][dBASE]No such table or object"  

Cette erreur étant liée à la source de données, le pilote a ajouté le format de fichier de la source de données ([dBASE]) comme préfixe au message de diagnostic. Le pilote étant également le composant qui assure l'interface avec la source de données, il a ajouté des préfixes pour le fournisseur ([Microsoft]) et le pilote ([ODBC dBASE Driver]).