Partager via


MsiDatabaseApplyTransformA, fonction (msiquery.h)

La fonction MsiDatabaseApplyTransform applique une transformation à une base de données.

Syntaxe

UINT MsiDatabaseApplyTransformA(
  [in] MSIHANDLE hDatabase,
  [in] LPCSTR    szTransformFile,
  [in] int       iErrorConditions
);

Paramètres

[in] hDatabase

Handle vers la base de données obtenue à partir de MsiOpenDatabase à la transformation.

[in] szTransformFile

Spécifie le nom du fichier de transformation à appliquer.

[in] iErrorConditions

Conditions d’erreur qui doivent être supprimées. Ce paramètre est un champ de bits qui peut contenir les bits suivants.

Condition d’erreur Signification
MSITRANSFORM_ERROR_ADDEXISTINGROW
0x0001
Ajout d’une ligne qui existe déjà.
MSITRANSFORM_ERROR_DELMISSINGROW
0x0002
Suppression d’une ligne qui n’existe pas.
MSITRANSFORM_ERROR_ADDEXISTINGTABLE
0x0004
Ajout d’une table qui existe déjà.
MSITRANSFORM_ERROR_DELMISSINGTABLE
0x0008
Suppression d’une table qui n’existe pas.
MSITRANSFORM_ERROR_UPDATEMISSINGROW
0x0010
Mise à jour d’une ligne qui n’existe pas.
MSITRANSFORM_ERROR_CHANGECODEPAGE
0x0020
Les pages de codes de transformation et de base de données ne correspondent pas et aucune n’a de page de codes neutre.
MSITRANSFORM_ERROR_VIEWTRANSFORM
0x0100
Créez la table _TransformView temporaire.

Valeur de retour

La fonction MsiDatabaseApplyTransform retourne l’une des valeurs suivantes :

Remarques

La fonction MsiDatabaseApplyTransform retarde la transformation des tables jusqu’à ce qu’il soit nécessaire. Toutes les tables à ajouter ou supprimer sont traitées immédiatement. Toutefois, les modifications apportées à la table existante sont retardées jusqu’à ce que la table soit chargée ou que la base de données soit validée.

Une erreur se produit si MsiDatabaseApplyTransform est appelée lorsque les tables ont déjà été chargées et enregistrées dans le stockage.

Étant donné que le délimiteur de liste pour les transformations, les sources et les correctifs est un point-virgule, ce caractère ne doit pas être utilisé pour les noms de fichiers ou les chemins d’accès.

Cette fonction ne peut pas être appelée à partir d’actions personnalisées. Un appel à cette fonction à partir d’une action personnalisée provoque l’échec de la fonction.

Si la fonction échoue, vous pouvez obtenir des informations d’erreur étendues à l’aide de MsiGetLastErrorRecord.

Note

L’en-tête msiquery.h définit MsiDatabaseApplyTransform 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 de gestion des bases de données

transformations de base de données