La requête (SQL Server 2008 Express) fonctionne dans SQL Server Management Studio mais pas dans Delphi à l'aide de ADODB

J'ai la requête suivante:

WITH cte AS ( SELECT windowId, frameIndx, elemIndx, comment, ROW_NUMBER() OVER (PARTITION BY frameIndx ORDER BY elemIndx DESC) AS rn FROM dbo.translations WHERE windowId = 1 AND frameIndx IN ( SELECT indx FROM dbo.translations_window WHERE program_id = 1 AND active = 1 ) ) SELECT windowId, frameIndx, elemIndx, comment FROM cte WHERE rn = 1 

La requête est exécutée sans problèmes lors de l'exécution dans SQL Server 2008 R2 Developer (peu importe comment), SQL Server 2005 Express et SQL Server 2008 R2 Express à l'aide du studio de gestion (ce travail pour les deux derniers). Mais dès que j'essaye d'exécuter ces requêtes en utilisant ADODB de Delphi, j'obtiens une erreur.

 Incorrect syntax near the keyword WITH 

Ces types de requêtes sont-ils interdits dans les versions express de SQL? quel est le problème dans la requête? Le client utilise SQL Express, donc j'ai besoin de find une solution à ce problème qui s'exécute dans la version express.

Je ne sais pas si cela aide, mais vous pouvez essayer de mettre un point-virgule avant votre requête:

 ; WITH cte AS ( ...