Orda : différence de comportement monoposte client/serveur

Bonjour à tous,

Je constate qu’une recherche sur une entitySélection testée sans problème en monoposte ne fonctionne plus en mode client/serveur … dès qu’une apostrophe est rencontrée dans la valeur à rechercher pourtant j’utilise les placeholders comme décrit dans la doc.

Ai-je oublié quelque chose ?

D’avance merci.

<code 4D>
C_OBJET($1;$selQualite) // Sélection d’entités Qualité
C_OBJET($selQualTempo) // Sélection temporaire
C_TEXTE($2) // Nom de l’énumération
C_TEXTE($3) // Chaine de recherche
C_ENTIER LONG($i) // Compteur

$selQualite:=$1
TABLEAU TEXTE($as_Liste;0)
LISTE VERS TABLEAU($2;$as_Liste)

Boucle ($i;1;Taille tableau($as_Liste))

$selQualTempo:=$selQualite.query($3;$as_Liste{$i})  // Null en client-serveur si $as_Liste{$i} contient apostrophe
s_Alpha10:=$as_Liste{$i}
r_Num10:=$selQualTempo.length
r_Num11:=$selQualTempo.sum("Cout")
Imprimer ligne([Qualite];"Tableau_de_Bord";Corps formulaire)

Fin de boucle

</code 4D>

Product :4D - 4D Server
V17 R2
OS : Windows

Bonjour,

Je n’arrive pas à reproduire avec une base simple et ce bout de code :

<code 4D>
$companies:=ds.Company.query(“name = :1”;“la compagnie d’arbre”)
</code 4D>

Auriez-vous plus d’informations, comme le contenue des variables $1, $2 et $3 ainsi que le contenue du tableau $as_Liste? La méthode a-t-elle la propriété “executé sur serveur” coché? Cela pourrait aider à comprendre pourquoi la query retourne null.

Bonjour et merci

Pour aller au plus simple voici deux exemples.

Bonne soirée

<code 4D>
C_OBJET($selQualite) // Sélection d’entités Qualité

$selQualite:=ds.Qualite.query(“Genres.colGenres[].genre = :1”;“Suggestion d’amélioration”)
// Client serveur : Error code: 1806 (dbmg) + Error code: 801 (xbox)
// Monoposte : 126 entités trouvées

$selQualite:=ds.Qualite.query(“Genres.colGenres[].genre = :1”;“Dysfonctionnement interne”)
// Client serveur 246 entités trouvées
// Monoposte : 246 entités trouvées

$selQualite:=ds.Qualite.query(“Type_Err = :1”;“Suggestion d’amélioration”)
// Client serveur : Error code: 1806 (dbmg) + Error code: 801 (xbox)
// Monoposte : 1 entité trouvée

$selQualite:=ds.Qualite.query(“Type_Err = :1”;“Demande de formation”)
// Client serveur 1 entité trouvée
// Monoposte : 1 entité trouvée

</code 4D>

Quel version de 4D et sur quel plateforme? Mac ou Windows?

Bonjour,

4D 17 R2 - Windows 10 pro

Il en est de même avec 4D V17.0 en production sur Windows serveur 2012 et tous les postes clients W10 et W7, et les quelques 800 champs texte ou objets.texte de la base.
Fichiers de structure et Fichiers de données datent de 4D V1.0 (1986, j’avais 40 ans !) et ont subit toutes les mises à jour sans problème majeur jusqu’à présent.

Bonne journée.

J’ai tout essayer, je n’arrive pas à reproduire.

J’ai essayer sur windows 10 avec v17.0 en 32 et 64 bit.

Voici mon code:

<code 4D>
$companies:=ds.Company.query(“name = :1”;“la compagnie d’arbre”)
$companies:=ds.Company.query(“name = :1”;$_test{1})

$companies:=ds.Company.query(“more_infos.colGenres[].genre = :1”;“Suggestion d’amélioration”)
$companies:=ds.Company.query(“more_infos.colGenres[].genre = :1”;“Dysfonctionnement interne”)
</code 4D>

Est-ce que le problème arrive en interpreter ou alors seulement en compiler?

Est-ce un problème d’encodage des données?

J’ai peur que je ne puisse pas aider plus.

À tout hasard, et bien que je ne vois pas laquelle, une bizarrerie dans les prefs de la base ?
Est-ce reproductible hors de cette base ?

Je me questionne sur les erreurs, il arrive que ça aide…
803 introuvable (presque rassurant tant c’est fréquent)
1806 est dans le https://doc.4d.com/4Dv17R3/4D/17-R3/Annexe-A-Codes-d-erreurs-SQL.300-4034430.fr.htmlSQL> : Echec de l’exécution de la commande DROP TABLE. À part qu’on est content que ça échoue, faut-il y chercher un sens ?
Est-ce la 803 qui entraîne la 1806, ou l’inverse ?

Sinon, en postulant qu’en mono et C/S ce n’est peut-être pas le même data, je me demande si ça ne serait pas la cible de cette recherche qui pose souci, genre champ objet en vrac. Le CSM ne signale rien ? Ce champ est-il indexé, et, si oui, l’index a-t-il été refait ?

Bonjour,

Test avec une nouvelle base d’essai on ne peut plus simple avec un champ texte et un champ alpha :

<code 4D>
C_OBJET($selTable)
$selTable:=ds.Table_1.query(“Champ_2 = :1”;“mengel’gilbert”)

</code 4D>

même problème avec les deux champs.

Je ne vois plus où chercher

: Gilbert MENGEL

Je ne vois plus où chercher
Chez TAOW, je dirais, surtout maintenant que tu as une base réduite qui reproduit le problème. Je peux regarder sur mac en C/S, si tu la déposes ici.

Merci

Voici la base

https://forums.4d.com/4DBB_Main/x_User/20227410/files/28063049.zip

Bonne journée

Cette base fonctionne chez moi sur Mac OSX 10.13 avec la 17.229463. Pareille sur Windows 10 avec la meme version de 4D. Bizarre. :frowning:

En mono ça passe, comme toi, mais nul besoin d’un pc pour que ça se torde de douleur en C/S :
[]28063960;“Your comment here…”[/]
J’ai eu beau secouer dans tous les sens, rien à faire, il est allergique à la quote ; ça relève vraiment de chez eux, je pense.

PS
macOS Sierra, 4D 17r2.227919 64bits.

PS2
testé sur un autre poste en High Sierra, ça m’a ré ouvert la boite à baffes. C’est d’autant plus cuisant que Gabriel y échappe.

Par hasard avez vous l’option “4D prefs/Methods/4D Programming Language : Use regional system settings” cochée? Chez moi c’est désactivé.

[]28064270;“Mon résultat.”[/]

Me voici rassuré sur un point : ce n’est pas l’air des Vosges.

"Par hasard avez vous l’option “4D prefs/Methods/4D Programming Language : …”

C’était coché mais décoché et après redémarrage idem.

Bêtement je viens de voir un truc : si tu teste la méthode en “exécuter sur serveur” avec un point d’arrêt.
je vois que sur le serveur ç’est ok.
Je teste plus avant.

J’ai fouillé les bugs, le voilà :
https://bugs.4d.fr/fixedbugslist?Version=17.0_HF3
ACI0098599…Querying with string containing single quote with ORDA cause in 4D remote an unexpected error #1806 “URL not well formed”.
J’utilise la v17r2 où il n’est pas corrigé. En https://bugs.4d.fr/fixedbugslist?branch=17_R3r3> on semble être couverts (vivement qu’elle sorte). Je ne sais pas à quoi correspond la version de Gabriel, peut-être la https://bugs.4d.fr/fixes?version=17.0_HF3v17 HF3>.

C’est beaucoup de temps pour retrouver un bug corrigé…

Merci Arnaud pour tes recherches

Petit développeur pour mon entreprise (www.mengel.fr), je ne suis pas 4d partner et n’ai pas accès aux bugs.

Je n’ai plus qu’à attendre.

Bon we