FAQ n°8864, publiée le 17/02/2014
WINDEV, WEBDEV, WINDEV MOBILE
Que faire si le message "Aucune syntaxe de <Fonction WLangage> ne correspond" apparaît lors de la recompilation d'un traitement avec une nouvelle version de WINDEV, WEBDEV ou WINDEV Mobile ?
Lors de l'appel d'une fonction WLangage, le retour "Aucune syntaxe de <Fonction WLangage> ne correspond" apparaît si l'un des paramètres de la fonction n'est pas du type attendu. Il suffit dans ce cas de vérifier via l'aide de la fonction, l'ensemble des types des paramètres.

Il est possible que ce message apparaisse sur un code existant après une mise à jour, car la compilation est en permanence enrichie. Elle peut donc détecter lors d'une mise à jour de nouveaux cas d'utilisation qui pouvaient présenter une ambiguïté.

Par exemple à partir de la version 190040g de WINDEV, WEBDEV et WINDEV Mobile, un contrôle est fait sur les différents types de chaînes de caractères. Le message  "Aucune syntaxe ne correspond" peut être donné dès la compilation si une "chaine unicode" est donnée à la place d'une "chaîne ansi". Il suffit dans ce cas de corriger le type, afin de permettre à nouveau la compilation. L'exécution est de cette manière toujours plus sûre.

Un exemple concret avec ce code :

sURLEncodée est une chaîne 
sURLEncodée = URLEncode("http://mon site/ma page")

Il provoque le retour "aucune syntaxe de URLEncode ne correspond" si le projet a sa configuration réglée sur "utiliser des chaînes UNICODE en exécution" :


Le code correct dans ce cas est donc : 

sURLEncodée est une chaîne 
sURL est une chaîne ANSI = "http://mon site/ma page"
sURLEncodée = URLEncode(sURL)

puisque l'aide de la fonction URLEncode précise bien que le paramètre doit être une chaîne ANSI.

Rappel : la configuration des chaînes de caractères en exécution est accessible par le volet "Projet" du ruban, regroupement "Configurations de projet", bouton "Configuration courante", puis le volet "Unicode".