MsiViewGetErrorW, fonction (msiquery.h)
La fonction MsiViewGetError retourne l’erreur qui s’est produite dans la fonction MsiViewModify .
Syntaxe
MSIDBERROR MsiViewGetErrorW(
[in] MSIHANDLE hView,
[out] LPWSTR szColumnNameBuffer,
[in, out] LPDWORD pcchBuf
);
Paramètres
[in] hView
Gérez la vue.
[out] szColumnNameBuffer
Pointeur vers la mémoire tampon qui reçoit le nom de colonne terminée par null. N’essayez pas de déterminer la taille de la mémoire tampon en transmettant une valeur null (valeur=0) pour szColumnName. Vous pouvez obtenir la taille de la mémoire tampon en transmettant une chaîne vide (par exemple « »). La fonction retourne ensuite MSIDBERROR_MOREDATA et pcchBuf contient la taille de mémoire tampon requise dans les TCHAR, sans inclure le caractère null de fin. Au retour de MSIDBERROR_NOERROR, pcchBuf contient le nombre de TCHAR écrits dans la mémoire tampon, sans inclure le caractère null de fin. Ce paramètre est une chaîne vide s’il n’y a aucune erreur.
[in, out] pcchBuf
Pointeur vers la variable qui spécifie la taille, en TCHAR, de la mémoire tampon pointée par la variable szColumnNameBuffer. Lorsque la fonction retourne MSIDBERROR_NOERROR, cette variable contient la taille des données copiées dans szColumnNameBuffer, sans inclure le caractère null de fin. Si szColumnNameBuffer n’est pas assez grand, la fonction retourne MSIDBERROR_MOREDATA et stocke la taille requise, sans inclure le caractère null de fin, dans la variable pointée par pcchBuf.
Valeur retournée
Cette fonction retourne l’une des valeurs suivantes.
Code d'erreur | Signification |
---|---|
|
Un argument n'était pas valide. |
|
La mémoire tampon était trop petite pour recevoir des données. |
|
La fonction a échoué. |
|
La fonction s’est terminée avec succès sans erreur. |
|
Le nouvel enregistrement duplique les clés primaires de l’enregistrement existant dans une table. |
|
Aucune valeur null n’est autorisée ; ou la colonne est sur le point d’être supprimée, mais est référencée par une autre ligne. |
|
L’enregistrement correspondant dans une table étrangère est introuvable. |
|
Les données sont supérieures à la valeur maximale autorisée. |
|
Les données sont inférieures à la valeur minimale autorisée. |
|
Les données ne sont pas membres des valeurs autorisées dans l’ensemble. |
|
Une chaîne de version non valide a été fournie. |
|
Le cas n’était pas valide. La casse doit être en majuscules ou en minuscules. |
|
Un GUID non valide a été fourni. |
|
Un nom de fichier générique non valide a été fourni ou l’utilisation de caractères génériques n’était pas valide. |
|
Un identificateur non valide a été fourni. |
|
Des ID de langue non valides ont été fournis. |
|
Un nom de fichier non valide a été fourni. |
|
Un chemin d’accès non valide a été fourni. |
|
Une instruction conditionnelle non valide a été fournie. |
|
Une chaîne de format non valide a été fournie. |
|
Une chaîne de modèle non valide a été fournie. |
|
Une chaîne non valide a été fournie dans la colonne DefaultDir de la table Directory . |
|
Une chaîne de chemin d’accès de Registre non valide a été fournie. |
|
Une chaîne non valide a été fournie dans la colonne CustomSource de la table CustomAction . |
|
Une chaîne de propriété non valide a été fournie. |
|
La table _Validation ne contient pas de référence à une colonne. |
|
La colonne de catégorie de la table _Validation pour la colonne n’est pas valide. |
|
Un nom d’armoire non valide a été fourni. |
|
La table de la colonne Keytable de la table _Validation a été introuvable ou chargée. |
|
La valeur de la colonne MaxValue de la table _Validation est inférieure à la valeur de la colonne MinValue. |
|
Un nom de cible de raccourci non valide a été fourni. |
|
La chaîne est trop longue pour la longueur spécifiée par la définition de colonne. |
|
Un attribut de localisation non valide a été fourni. (Les clés primaires ne peuvent pas être localisées.) |
Notez que dans les situations de mémoire insuffisante, cette fonction peut déclencher une exception STATUS_NO_MEMORY.
Remarques
Vous devez appeler la fonction MsiViewGetError uniquement lorsque MsiViewModify retourne ERROR_INVALID_DATA, ce qui indique que les données ne sont pas valides. Les erreurs sont enregistrées uniquement pour les MSIMODIFY_VALIDATE, les MSIMODIFY_VALIDATE_NEW et les MSIMODIFY_VALIDATEFIELD.
Si ERROR_MORE_DATA est retourné, le paramètre qui est un pointeur donne la taille de la mémoire tampon nécessaire pour contenir la chaîne. En cas de réussite, il indique le nombre de caractères écrits dans la mémoire tampon de chaîne. Par conséquent, vous pouvez obtenir la taille requise de la mémoire tampon en passant une petite mémoire tampon (un caractère minimum) et en examinant la valeur à pcchPathBuf lorsque la fonction retourne MSIDBERROR_MOREDATA. N’essayez pas de déterminer la taille de la mémoire tampon en transmettant null comme szColumnNameBuffer ou une taille de mémoire tampon de 0 dans le DWORD référencé par pcchBuf.
Une fois MSIDBERROR_NOERROR retournée, il ne reste plus d’erreurs de validation. La valeur de retour MSIDBERROR indique le type d’erreur de validation qui s’est produite pour la valeur située dans la colonne identifiée par le szColumnNameBuffer.
Notes
L’en-tête msiquery.h définit MsiViewGetError comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer sur Windows Server 2003 ou Windows XP |
Plateforme cible | Windows |
En-tête | msiquery.h |
Bibliothèque | Msi.lib |
DLL | Msi.dll |
Voir aussi
Fonctions générales d’accès à la base de données
Passage de la valeur Null en tant qu’argument des fonctions Windows Installer