Cela ne tombe pas en panne dans ColdFusion 11, mais ne se bloque dans ColdFusion 2016accidents CFQUERY quand il y a des commentaires TSQL
SELECT *
FROM dbo.Roles WITH (NOLOCK)
WHERE Code IS NOT NULL
AND Active = 1
AND RoleID IN (SELECT RoleID FROM dbo.Emp WITH (NOLOCK)) -- It's ok to look at termed employees
Cela fonctionne bien dans les deux
SELECT *
FROM dbo.Roles WITH (NOLOCK)
WHERE Code IS NOT NULL
AND Active = 1
AND RoleID IN (SELECT RoleID FROM dbo.Emp WITH (NOLOCK))
est-il un paramètre pour restaurer le comportement original?
MISE À JOUR
Je pensais avoir un exemple minimal de la question, mais je ne. Voici la requête complète
SELECT '<ul>' + STUFF (
(
SELECT MIN(Role) AS "li/code", Code AS "li/span/b", 'Unsorted' AS "li/span/var"
FROM dbo.Roles WITH (NOLOCK)
WHERE Code IS NOT NULL
AND Active = 1
AND RoleID IN (SELECT RoleID FROM dbo.Emp WITH (NOLOCK)) -- It's ok to look at termed employees
GROUP BY Code
FOR XML PATH ('')
),
1,0,''
) + '</ul>' AS xmlRole
Quand je tourne le débogage DB: Je reçois:
spy(http-nio-8500-exec-5)(2016/02/17 10:21:13.807)>> OK
spy(http-nio-8500-exec-5)(2016/02/17 10:21:13.807)>> Statement[4].execute(String sql, int autoGeneratedKeys)
spy(http-nio-8500-exec-5)(2016/02/17 10:21:13.807)>> sql = SELECT '<ul>' + STUFF ((SELECT MIN(Role) AS "li/code", Code AS "li/span/b", 'Unsorted' AS "li/span/var" FROM dbo.Roles WITH (NOLOCK) WHERE Code IS NOT NULL AND Active = 1 AND RoleID IN (SELECT RoleID FROM dbo.Emp WITH (NOLOCK)) -- It's ok to look at termed employees GROUP BY Code FOR XML PATH ('')), 1,0,'') + '</ul>' AS xmlRole
spy(http-nio-8500-exec-5)(2016/02/17 10:21:13.807)>> autoGeneratedKeys = 1
spy(http-nio-8500-exec-5)(2016/02/17 10:21:13.807)>>
java.sql.SQLException: [Macromedia][SQLServer JDBC Driver][SQLServer]Incorrect syntax near ')'. ErrorCode=102 SQLState=HY000
java.sql.SQLException: [Macromedia][SQLServer JDBC Driver][SQLServer]Incorrect syntax near ')'.
at macromedia.jdbc.sqlserverbase.ddcw.b(Unknown Source)
at macromedia.jdbc.sqlserverbase.ddcw.a(Unknown Source)
Notez que la chaîne SQL est sur une seule ligne. Quand le commentaire commence, ça ne finit pas. Tout après le --
reste comme un commentaire.
La gestion de l'espace blanc est activée. L'éteindre ne change pas le comportement. Le SQL généré est le même
One de mes choses les moins préférées sur ColdFusion - lorsque vous effectuez une mise à niveau, les choses qui ont l'habitude de travailler commencent à se casser. –
* ColdFusoin 10.5 * ColdFusion 10.5.1 –
Je suis sûr qu'il y avait un problème comme celui-ci lors de la mise à niveau CF9 de CF8. Résoudre ce problème impliquait de désactiver la gestion des espaces blancs dans l'admin. Cela change-t-il quelque chose si vous désactivez la gestion des espaces blancs? De toute façon, défaire un bug. – haxtbh