Bonjour,
J'explicite le sujet.
Je travaille avec delphi 10.4 sur une base mariadb/mysql.
J'ai constaté avec un peu d'étonnement que si je fais une requête du genre :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 DROP TABLE IF EXISTS util; CREATE TABLE `util` ( `U_nom` CHAR(30) NOT NULL DEFAULT '' COLLATE 'latin1_general_ci', `U_mp` CHAR(250) NOT NULL COLLATE 'latin1_general_ci', PRIMARY KEY (`U_nom`) USING BTREE ) COLLATE='latin1_general_ci' ENGINE=InnoDB; /*!40000 ALTER TABLE util DISABLE KEYS */; INSERT INTO util (U_nom, U_mp) VALUES ('toto', 'e.*+°*MëÎ*&bXvS}v+°@vX<WgbXi*°Oe|@v:Ö&>W1a'); /*!40000 ALTER TABLE util ENABLE KEYS */;
à l'aide d'un TFDQuery, le caractère & et les caractères bXvS qui le suivent ne sont pas restitués dans le champ ?
Si j'exécute cette requête avec heidisql, aucun problème ...
Dans le moniteur firedac (compliqué de comprendre comment ça fonctionne avec 0 information dans l'aide), j'ai une ligne :
avec la valeur à insérer correcte avec &bXvS présent>> dm2.q1.Prepare [Command="/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; ...
puis une ligne :
et à ce stade là, les caractères &bXvS ne sont plus présents dans la valeur à insérer ..... Preprocessed [CMD="/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; ...
J'ai d'autres lignes à insérer avec un & présent dans le champ, et tous les & disparaissent avec 0 ou plusieurs caractères à leur suite qui disparaissent aussi, par exemple :
s+vtYÎC:éÈQÜCÎb/êEä93|b9.rêT&ACbIÈèäc qui devient s+vtYÎC:éÈQÜCÎb/êEä93|b9.rêT
ou
t&*i1yéjqI+)W+5g#4 CZ1_8x]ûtDdBp qui devient t*i1yéjqI+)W+5g#4 CZ1_8x]ûtDdBp
Quelqu'un aurait-il une explication à ce comportement très étrange ?
Merci d'avance.
Partager