Partager via


SQLInstallerError, fonction

Conformité
Version introduite : ODBC 3.0

Résumé
SQLInstallerError retourne des informations d’erreur ou d’état pour les fonctions du programme d’installation ODBC.

Syntaxe

  
RETCODE SQLInstallerError(  
     WORD      iError,  
     DWORD *   pfErrorCode,  
     LPSTR     lpszErrorMsg,  
     WORD      cbErrorMsgMax,  
     WORD *    pcbErrorMsg);  

Arguments

iError
[Entrée] Numéro d’enregistrement d’erreur. Les nombres valides sont de 1 à 8.

pfErrorCode
[Sortie] Code d’erreur du programme d’installation. (Pour plus d’informations, consultez « Commentaires ».

lpszErrorMsg
[Sortie] Pointeur vers le stockage pour le texte du message d’erreur.

cbErrorMsgMax
[Entrée] Longueur maximale de la mémoire tampon szErrorMsg . Cette valeur doit être inférieure ou égale à SQL_MAX_MESSAGE_LENGTH moins le caractère d’arrêt Null.

cbErrorMsgMax
[Entrée] Longueur maximale de la mémoire tampon szErrorMsg . Cette valeur doit être inférieure ou égale à SQL_MAX_MESSAGE_LENGTH moins le caractère d’arrêt Null.

pcbErrorMsg
[Sortie] Pointeur vers le nombre total d’octets (à l’exception du caractère d’arrêt Null) disponibles à retourner dans lpszErrorMsg. Si le nombre d’octets disponibles à retourner est supérieur ou égal à cbErrorMsgMax, le texte du message d’erreur dans lpszErrorMsg est tronqué en cbErrorMsgMax moins les octets de caractères de terminaison Null. L’argument pcbErrorMsg peut être un pointeur null.

Retours

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA ou SQL_ERROR.

Diagnostics

SQLInstallerError ne publie pas de valeurs d’erreur pour lui-même. SQLInstallerError retourne SQL_NO_DATA lorsqu’il ne parvient pas à récupérer des informations d’erreur (auquel cas pfErrorCode n’est pas défini). Si SQLInstallerError ne peut pas accéder aux valeurs d’erreur pour une raison qui retournerait normalement SQL_ERROR, SQLInstallerError retourne SQL_ERROR mais ne publie aucune valeur d’erreur. Si vous ne connaissez pas la longueur de la chaîne d’avertissement (lpszErrorMsg), vous pouvez définir lpszErrorMsg sur NULL et appeler SQLInstallerError. SQLInstallerError retourne ensuite la longueur de la chaîne d’avertissement dans cbErrorMsgMax. Si la mémoire tampon du message d’erreur est trop courte, SQLInstallerError retourne SQL_SUCCESS_WITH_INFO et retourne la valeur pfErrorCode correcte pour SQLInstallerError.

Pour déterminer si une troncation s’est produite dans le message d’erreur, une application peut comparer la valeur de l’argument cbErrorMsgMax à la longueur réelle du texte du message écrit dans l’argument pcbErrorMsg . Si la troncation se produit, la longueur de mémoire tampon correcte doit être allouée pour lpszErrorMsg et SQLInstallerError doit être appelée à nouveau avec l’enregistrement iError correspondant.

Commentaires

Une application appelle SQLInstallerError lorsqu’un appel précédent à la fonction du programme d’installation ODBC retourne FALSE. Le programme d’installation ODBC et les fonctions de configuration du pilote ou du traducteur publient zéro ou plusieurs erreurs uniquement en cas d’échec de la fonction (retourne FALSE) ; Par conséquent, une application appelle SQLInstallerError uniquement après l’échec d’une fonction du programme d’installation ODBC.

La file d’attente d’erreurs du programme d’installation ODBC est vidée chaque fois qu’une nouvelle fonction de programme d’installation est appelée. Par conséquent, une application ne peut pas s’attendre à récupérer des erreurs pour des fonctions autres que celles du dernier appel de fonction du programme d’installation.

Pour récupérer plusieurs erreurs pour un appel de fonction, une application appelle SQLInstallerError plusieurs fois.

Lorsqu’il n’y a pas d’informations supplémentaires, SQLInstallerError retourne SQL_NO_DATA, l’argument pfErrorCode n’est pas défini, l’argument pcbErrorMsg est égal à 0 et l’argument lpszErrorMsg contient un caractère d’arrêt null unique (sauf si l’argument cbErrorMsgMax est égal à 0).