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érer la vue.
[out] szColumnNameBuffer
Pointeur vers la mémoire tampon qui reçoit le nom de la colonne terminée par null. N’essayez pas de déterminer la taille de la mémoire tampon en transmettant une valeur Null (value=0) pour szColumnName. Vous pouvez obtenir la taille de la mémoire tampon en passant 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. Lors du 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, dans les 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 suffisamment volumineux, 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 de retour
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. |
|
Échec de la fonction. |
|
La fonction s’est terminée correctement 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 n’a pas été trouvé. |
|
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. |
|
L’affaire 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 n’a pas été trouvée ou chargée. |
|
La valeur de la colonne MaxValue de la table _Validation est inférieure à la valeur de la colonne MinValue. |
|
Un nom 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. (Impossible de localiser les clés primaires.) |
Notez que dans les situations de mémoire faible, cette fonction peut déclencher une exception STATUS_NO_MEMORY.
Remarques
Vous devez uniquement appeler la fonction MsiViewGetError lorsque MsiViewModify retourne ERROR_INVALID_DATA, indiquant que les données ne sont pas valides. Les erreurs ne sont enregistrées que 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 requise pour contenir la chaîne. En cas de réussite, il donne 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 en tant que szColumnNameBuffer ou une taille de mémoire tampon de 0 dans la DWORD référencée par pcchBuf.
Une fois MSIDBERROR_NOERROR retourné, aucune autre erreur de validation ne reste. 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.
Note
L’en-tête msiquery.h définit MsiViewGetError comme 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.
Exigences
Exigence | Valeur |
---|---|
client minimum 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 |
d’en-tête | msiquery.h |
bibliothèque | Msi.lib |
DLL | Msi.dll |
Voir aussi
fonctions d’accès aux bases de données générales
passage de null en tant qu’argument des fonctions Windows Installer