Login mot de passe
forum - Tous les messages
   Tous les messages (cbekier)

 Bas   Précédent   Suivant

(1) 2 3 4 ... 7 »


#1 Re: Pb avec les accents en écriture
cbekier Posté le : 5/14 17:36
Voici la solution trouvée :

Je pense qu'il y a une erreur de conception dans la classe PHP4WX avec la méthode mySQLExec.
En effet, le membre :alphabet est utilisé à la fois pour:
a- convertir les paramètres du formulaire Web en UFT8 (Wx => PHP),
b- convertir en Unicode le résultat renvoyé par le serveur Web (PHP => Wx).

Dans mon cas, j'ai besoin de :
- convertir les paramètres du formulaire Web en UTF8 avec l'alphabet courant,
- convertir le résultat renvoyé par le serveur Web avec l'alphabet UTF8 puisque j'ai initialisé le membre :charset = "utf-8".

De mon point de vue, il faudrait donc avoir 2 membres :alphabet

Voici mes corrections :

1- Dans le code d'initialisation du projet, j'ai modifié la variable MySQL:alphabet :

MySQL
:alphabet alphabetCourant


2- Dans la méthode mySQLExec, j'ai modifié le code suivant :

v_chaineResult 
AnsiVersUnicode(HTTPDonneRésultat(httpRésultat),:alphabet)

par ceci :

v_chaineResult 
AnsiVersUnicode(HTTPDonneRésultat(httpRésultat),alphabetUTF8)

A noter : j'ai codé en dur l'alphabet utilisé pour convertir en Unicode le résultat renvoyé par le serveur Web mais c'est ici qu'un second membre serait utile.

Le cryptage de la requête provoquait aussi un problème ; j'ai donc modifié le code suivant :

SI 
:CrypteReq Vrai     ALORS v_mySQL = :CrypteURL(sqlQuery)

par ceci :

SI 
:CrypteReq Vrai     ALORS v_mySQL = :CrypteURL(ChaîneVersUTF8(sqlQuery,:alphabet))


J'espère que cela va aider... notamment sur la partie cryptage


#2 Pb avec les accents en écriture
cbekier Posté le : 5/13 16:29
Bonjour,

J'ai un problème pour faire des INSERT/UPDATE sur des VARCHAR avec des mots comportant des accents depuis que j'ai migré mon projet avec les dernières versions des classes.

J'utilise :
- SQLManagerX Version 19.0.0.1 du 28/05/2019
- PHP4WX version 9.2.0.15 du 25/06/2019

Avec l'initialisation suivante :

MySQL
:CrypteReq         Vrai
MySQL
:CryptRetour        Faux
MySQL
:methodeZip         Faux
MySQL
:mySQLDebugMode         Faux
MySQL
:dataHexa            Faux 
MySQL
:modeUTF8Entree        Vrai 
MySQL
:modeUTF8Sortie        Faux 
MySQL
:charset            "utf-8"
MySQL:alphabet            alphabetUTF8


Je précise que sans "MySQL:alphabet = alphabetUTF8" j'ai aussi le problème pour les SELECT.

Tous mes Varchar sont en utf8_unicode_ci.

C'est probablement pas compliqué à résoudre mais je n'ai pas trouvé...
Merci d'avance pour votre aide.

Cyril


#3 Re: Erreur de la méthode mySQLRequestInUse sur Android
cbekier Posté le : 4/22 11:16
Bonjour,

J'ai créé un projet ultra simple avec juste :
1- une fenêtre ultra simple
2- une classe ultra simple
Tout cela pour tester la fonction DIMENSION sur un membre depuis une méthode d'une classe.

Et bien, cela plante aussi en le testant sur un device Android !
J'ai donc créé un ticket auprès du support de PC-Soft.

Je vous tiendrai au courant...


#4 Erreur de la méthode mySQLRequestInUse sur Android
cbekier Posté le : 4/16 15:01
Bonjour,

J'ai un plantage sur Android de la méthode mySQLRequestInUse.

Cela fonctionne bien sous l'émulateur mais avec un Samsung Galaxy SM-G930F sous Android 8.0.0 (Oreo) cela provoque un plantage.

Le message est le suivant :
Message=L'élément ':Resultat1' est inconnu.
Traitement=Méthode mySQLRequestInUse
Pile WLangage=Méthode mySQLRequestInUse

Avez-vous déjà eu cela ?

Merci,
Cyril


#5 Re: Plantage presque aléatoire
cbekier Posté le : 2018/9/7 20:15
C'est super sympa de ta part car là je sèche !
J'attends ton exemple...


#6 Re: Plantage presque aléatoire
cbekier Posté le : 2018/9/7 19:16
Alors là, je ne sais pas (encore) faire !
Peux-tu m'aider un peu plus ?

Merci


#7 Re: Place du MySQL:mySQLFerme
cbekier Posté le : 2018/9/6 15:26
Ok, donc il faut faire un MySQL:mySQLFerme même en cas d'erreur du MySQL:mySQLExec et quel que soit le type de requête (SELECT, INSER, UPDATE, ...) ?


#8 Place du MySQL:mySQLFerme
cbekier Posté le : 2018/9/6 15:05
Bonjour,

J'ai un doute sur la bonne place du MySQL:mySQLFerme

Faut-il faire ainsi :

retCode 
MySQL:mySQLExec(s_sqlQuery,1)
SI (retCode=1ALORS
    MySQL
:MySQLPremier(1)
    
TANTQUE PAS MySQL:mySQLEnDehors
        
...
        
MySQL:mySQLSuivant(1)
    
FIN
    MySQL
:mySQLFerme(1)
FIN


Ou ainsi :

retCode 
MySQL:mySQLExec(s_sqlQuery,1)
SI (retCode=1ALORS
    MySQL
:MySQLPremier(1)
    
TANTQUE PAS MySQL:mySQLEnDehors
        
...
        
MySQL:mySQLSuivant(1)
    
FIN
FIN
MySQL
:mySQLFerme(1)


#9 Re: Plantage presque aléatoire
cbekier Posté le : 2018/9/6 15:00
Oui, je suis en MDI.
Le code est sur le traitement "Sélection" d'une ligne.
Effectivement, windev permet de passer sur la suivante ligne de la ZR alors que le traitement n'est pas terminé.

Du coup, comment puis-je m'en prémunir ?


#10 Plantage presque aléatoire
cbekier Posté le : 2018/9/6 13:29
Bonjour,

J'ai un problème dont je ne sais me dépatouiller !
Dans une fenêtre, j'ai un Zone Répétée qui liste des contacts. A côté, j’ai un détail du contact qui s’affiche lorsque l’on clic sur une ligne de la ZR.
L’affichage des détails est réalisée avec une requête complexe (beaucoup de jointures) et donc j’utilise :mySQLExec()

Si l’utilisateur appuie de nombreuses fois sur la touche [bas] pour passer de contact en contact et qu’il le fait trop vite ; j’ai un beau plantage !
Comme j’utilise ce même fonctionnement dans beaucoup de fenêtre de mon projet, j’ai le problème presque partout !

J’ai un autre problème dont la cause est probablement la même que le problème précédent :
J’ai un tableau de bord avec des tuiles qui là aussi nécessitent des requêtes complexes et donc :mySQLExec()
Si l’utilisateur n’attend pas la fin de l’affichage des tuiles pour ouvrir des fenêtres, cela provoque une erreur.

Dans les 2 cas, le message est le même :
Erreur à la ligne 133 du traitement Méthode mySQLExec.
La dimension 1 du tableau possède 1 élément(s) et vous tentez d'accéder à l'élément 10.

Avez-vous une idée ?



 Haut
(1) 2 3 4 ... 7 »