2011-07-14 2 views
1

Je pense avoir trouvé un bogue avec des commentaires multilignes et des scripts SQL dans InstallShield 2010.Bogue de commentaire multiligne InstallShield 2010 SQL Script?

Pour reproduire le bogue, créez un projet MSI de base. Aller à l'installation Designer -> Scripts SQL, créez une connexion SQL puis ajoutez un nouveau script qui contient le script suivant:

/* 
USE [master] 
GO 
*/ 

USE master 
GO 

Construire le MSI et essayer de l'installer, vous recevrez l'erreur MSI suivante:

Error 27506.Error executing SQL script sqlscript.sql. Line 3. Missing end comment mark '*/'. (113)

La modification du commentaire multiligne en - forme résoudra le problème. En outre, si la marque de fin de commentaire n'est pas précédée d'une instruction GO, l'installation n'échouera pas. Par exemple:

/* 
THIS 
WILL 
NOT 
FAIL 
*/ 

Est-ce que quelqu'un a rencontré ce bogue? Un moyen de le réparer?

PS: Je posterai ceci sur le forum de Flexara.

Répondre

2

Cela me semble être un comportement connu. Je crois que l'analyse cherche des lignes de GO sans égard à quoi que ce soit d'autre, de sorte que les commentaires sur plusieurs lignes ne l'affectent pas. Voir la deuxième réponse de hidenori sur le fil Install Shield is trashing SQL Scripts.

Vous semblez avoir déjà identifié la solution de contournement - remplacez le GO par un --GO.

+0

Yup. Mais la solution de contournement est inacceptable car les fichiers SQL sont générés par un outil de mappage O/R. – Ian

+0

Il semble étrange qu'un outil génère des sections commentées. Pouvez-vous réparer l'outil? Ou changer le séparateur de 'GO' à autre chose? –

+0

Il n'y a pas d'options pour désactiver les commentaires sur le code généré. Dans le pire des cas, je pense que je vais devoir écrire un scrubber pour nettoyer le script généré. BTW, l'outil est LLBLGen. Je pense que c'est très populaire. – Ian

Questions connexes