MsiDatabaseGenerateTransformA, fonction (msiquery.h)
La fonction MsiDatabaseGenerateTransform génère un fichier de transformation des différences entre deux bases de données. Une transformation est un moyen d’enregistrer les modifications apportées à une base de données sans modifier la base de données d’origine. Vous pouvez également utiliser MsiDatabaseGenerateTransform pour tester si deux bases de données sont identiques sans créer de transformation.
Syntaxe
UINT MsiDatabaseGenerateTransformA(
[in] MSIHANDLE hDatabase,
[in] MSIHANDLE hDatabaseReference,
[in] LPCSTR szTransformFile,
[in] int iReserved1,
[in] int iReserved2
);
Paramètres
[in] hDatabase
Gérez la base de données obtenue à partir de MsiOpenDatabase qui inclut les modifications.
[in] hDatabaseReference
Gérez la base de données obtenue à partir de MsiOpenDatabase qui n’inclut pas les modifications.
[in] szTransformFile
Chaîne terminée par null qui spécifie le nom du fichier de transformation généré. Ce paramètre peut avoir la valeur Null. Si szTransformFile a la valeur null, vous pouvez utiliser MsiDatabaseGenerateTransform pour tester si deux bases de données sont identiques sans créer de transformation. Si les bases de données sont identiques, la fonction retourne ERROR_NO_DATA. Si les bases de données sont différentes, la fonction retourne NOERROR.
[in] iReserved1
Il s’agit d’un argument réservé qui doit être défini sur 0.
[in] iReserved2
Il s’agit d’un argument réservé qui doit être défini sur 0.
Valeur retournée
La fonction MsiDatabaseGenerateTransform retourne l’une des valeurs suivantes :
Remarques
Pour générer un fichier de différence entre deux bases de données, utilisez la fonction MsiDatabaseGenerateTransform . Une transformation contient des informations sur l’insertion et la suppression de colonnes et de lignes. Les indicateurs de validation sont stockés dans le flux d’informations récapitulatives du fichier de transformation.
Pour les tables qui existent dans les deux bases de données, la seule différence entre les deux schémas autorisés est l’ajout de colonnes à la fin de la table de référence. Vous ne pouvez pas ajouter de colonnes de clé primaire à une table ou modifier l’ordre ou les noms ou les définitions de colonne des colonnes existantes, comme défini dans la table de base. En d’autres termes, si aucune table ne contient de données et que les colonnes sont supprimées de la table de référence, la table résultante est identique à la table de base.
É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 génère pas de flux d’informations récapitulatives. Utilisez MsiCreateTransformSummaryInfo pour créer le flux d’une transformation existante.
Si szTransformFile a la valeur Null, vous pouvez tester si deux bases de données sont identiques sans créer de transformation. Si les bases de données sont identiques, ERROR_NO_DATA est retourné, NOERROR est retourné si des différences sont trouvées.
Cette fonction ne peut pas être appelée à partir d’actions personnalisées. Un appel à cette fonction à partir d’une action personnalisée entraîne l’échec de la fonction.
Si la fonction échoue, vous pouvez obtenir des informations d’erreur étendues à l’aide de MsiGetLastErrorRecord.
Notes
L’en-tête msiquery.h définit MsiDatabaseGenerateTransform 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 |