Lorsque vous utilisez un accès natif MySql pour Winvev il existe deux possibilités:
- Si vous utilisez l'analyse Windev avec une connexion HOuvreConnexion(Maconnexion) à ce niveau les caractères spéciaux sont automatiquement gérés.
-Si vous utilisez un accès natif MySql sans l'analyse pour Windev avec une connexion Sqlconnecte(serveur,utilisateur,motdepasse,bd,"Mysql") les caractères spéciaux ne sont pas gérés tels que(/,',a^,ê,â,été...) et la fonction H n"est pas reconnue.
Je vous pressente une procédure pour gérer ces caractères spéciaux mal interprétés par le serveur d'application:
Cette procédure s'utilise uniquement sur les chaines de caractères et non sur les entiers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 PROCEDURE convertirchaine(textString est une chaîne, codage est booléen = Vrai) SI PAS codage ALORS textString = Remplace(textString, "\\", "\") textString = Remplace(textString, "\0",Caract(0)) textString = Remplace(textString, "\t",TAB ) textString = Remplace(textString, "\r",Caract(10) ) textString = Remplace(textString, "\n", Caract(13)) textString = Remplace(textString, "''","'" ) textString = Remplace(textString, "%%","%") SINON textString = Remplace(textString, "\", "\\") textString = Remplace(textString, Caract(0), "\0") textString = Remplace(textString, TAB, "\t") textString = Remplace(textString, Caract(13), "\n") textString = Remplace(textString, Caract(10), "\r") textString = Remplace(textString, "'","") //textString = Remplace(textString, "'","''") textString = Remplace(textString, "%","%%") FIN SI PAS codage ALORS RENVOYER (textString) RENVOYER ("'" + textString + "'")
Illustration:
ReqReduct = SQLExec("INSERT INTO `t_utilisateur` (`utilisateur`,`motpass`,`niveau`) VALUE ( "+...
convertirchaine(SAI_Utilisateur)+","+...
convertirchaine(SAI_Motpasse)+","+...
SAI_Niveau+")","REQFACT")
Bon dev...............
On verra également comment gérer les transactions de façon efficace avec cette même fonction SQLExc.
Partager