Bonjour,
Dans le cadre d'une double migration Webdev 17 en 22 et base de données HFSQL en MSSQL, j'ai quelques requêtes qui me posent problèmes, pouvez vous m'aider. Je suis en accès Natif Microsoft SQL.
Cas 1 : CodeSql = [ SELECT Sum(FORMATP.qtematierepremiere) AS Somme_qtematierepremiere FROM FORMATP WHERE FORMATP.FOCLEUNIK = %1 ] CodeSql = ChaîneConstruit(CodeSql,:_FOCLEUNIK) // SI HExécuteRequêteSQL(REQ,hRequêteDéfaut,CodeSql) ALORS // SI HExécuteRequêteSQL(REQ,"MaConnexion",hRequêteDéfaut,CodeSql) ALORS SI HExécuteRequêteSQL(REQ,"MaConnexion", hRequêteSansCorrection, CodeSql) ALORS TotalMatiere = REQ.Somme_qtematierepremiere FIN
Les lignes en commentaires sont les différentes requêtes que j'ai essayées. Toutes sont fonctionnelles car le débug exécute le HexécuteRequeteSQL, le debug passe sur la ligne : "TotalMatiere = REQ.Somme_qtematierepremiere" mais le résultat reste à 0 Le debug donne le résultat suivant dans CodeSql : "SELECT Sum(FORMATP.qtematierepremiere) AS Somme_qtematierepremiere FROM FORMATP WHERE FORMATP.FOCLEUNIK = 17844"
Le code copié dans le requêteur Microsoft SQL en enlevant les "" donne un résultat, la requête est donc bonne au niveau syntaxe à priori.
Cas 2 : J'ai une table avec requête intégrée qui fonctionnait en HFSQL. Elle ne fonctionne plus en MSSQL. Une des zones est une image (Pictogramme). SELECT [TRADPICT].[CommentairePictogramme] AS CommentairePictogramme , COUNT( [CPT].[LGCLEUNIK] ) AS Comptage , [PICTODANG].[IDPICTODANG] AS [IDPICTODANG] , [PICTODANG].[OdrePictogramme] AS [OdrePictogramme] , [PICTODANG].[Pictogramme] AS [Pictogramme] , [PICTODANG].[CodePictogramme] AS [CodePictogramme] FROM [TRADPICT] WITH (NOLOCK) , [TRADPICT] [CPT] WITH (NOLOCK) , [PICTODANG] WITH (NOLOCK) WHERE ( ( ( [PICTODANG].[IDPICTODANG] = [TRADPICT].[IDPICTODANG] ) AND ( [PICTODANG].[IDPICTODANG] = [CPT].[IDPICTODANG] ) ) AND ( [TRADPICT].[LGCLEUNIK] = 1 ) ) GROUP BY [TRADPICT].[CommentairePictogramme] , [PICTODANG].[IDPICTODANG] , [PICTODANG].[OdrePictogramme] , [PICTODANG].[Pictogramme] , [PICTODANG].[CodePictogramme] ORDER BY 3
C'est le group by qui est refusé à cause d'une zone son, image, binaire dans le requêteur Microsoft SQL. Erreur SQL Description: The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. SQL State: 42000 SQL Error Number: 306
Cas 3 : Ressemble au cas 2. Commentaire FDS est une zone de type text dans MSSQL. C'était une zone de type memo texte dans HFSQL Le group by n'est pas accepté
SELECT [TABLEFDS].[IDTABLEFDS] AS [IDTABLEFDS] , [TABLEFDS].[CodeFDS] AS [CodeFDS] , [TABLEFDS].[Ponderation] AS [Ponderation] , [TRADFDS].[CommentaireFDS] AS CommentaireFDS , COUNT( [CPT].[LGCLEUNIK] ) AS NbLangue FROM [TABLEFDS] WITH (NOLOCK) , [TRADFDS] WITH (NOLOCK) , [TRADFDS] [CPT] WITH (NOLOCK) WHERE ( ( ( [TABLEFDS].[IDTABLEFDS] = [CPT].[IDTABLEFDS] ) AND ( [TABLEFDS].[IDTABLEFDS] = [TRADFDS].[IDTABLEFDS] ) ) AND ( [TRADFDS].[LGCLEUNIK] = 1 ) ) GROUP BY [TABLEFDS].[IDTABLEFDS] , [TABLEFDS].[CodeFDS] , [TABLEFDS].[Ponderation] , [TRADFDS].[CommentaireFDS] ORDER BY 1
Merci pour votre aide. |