0

Est-ce que quelqu'un sait comment faire d'InstallAware une restauration d'une base de données lorsque l'utilisateur clique sur 'Annuler'? Contrairement à InstallShield, je ne vois aucun moyen de spécifier quand des scripts individuels s'exécutent.Restauration d'une base de données InstallAware

+0

Vous êtes sûr que cela ne se fait pas automatiquement par magie? InstallAware semble faire des choses géniales par moments, et je me demande si elles font ce qui revient à une restauration bizarre. –

Répondre

0

Je ne pense pas que InstallAware serait en mesure d'annuler une transaction de base de données. Je n'ai vu aucune prise en charge intrinsèque pour les annulations SQL Server dans leur commande MS SQL Server. Vous devrez coder votre propre script de restauration, si c'est possible.

Il y a généralement une section dans le MSICode qui a un bloc IF si l'utilisateur annule l'installation pendant les dialogues initiaux. Cela ressemble à ceci:

if variable WIZARD Equals CANCEL 
    Terminate Installation 
end 

Cela se produit avant que le moteur Windows Installer effectue réellement l'installation. Si vous n'avez pas exécuté vos scripts de base de données, aucune action n'est requise. Si vous avez appliqué des scripts de base de données avant ce point, vous devrez fournir un script de restauration (si possible) et l'exécuter dans ce bloc, mais avant de terminer l'installation.

Si vous annulez l'installation pendant l'installation, vous aurez une autre chance d'annuler vos modifications. Lorsque l'utilisateur appuie sur le bouton d'annulation pendant l'exécution du processus d'installation (c'est-à-dire après que l'utilisateur a effectué des sélections), la variable InstallAware SUCCESS est définie sur CANCEL. Vous pouvez vérifier cette condition et exécuter votre script de restauration. Il y a généralement un bloc de code qui fait des choses différentes en fonction de la valeur de SUCCESS, vous pouvez y ajouter votre code.

Vous pouvez toujours faire de votre script SQL la dernière commande exécutée par InstallAware dans le cadre de l'installation. Cela éliminerait la nécessité de gérer l'annulation.

Questions connexes