probleme de connection et recupération de donnée d une base Mysql
Bonjour,
voilà mon pb:
j ai crée une petite appli VCL MDI avec acces à une base de donnée Mysql., l appli comprend le mdi Parent et 4 MDIchild.
ma base mysql et en utf8
sur le mdi parent j ai un composant firedac pour le driver mysql et 1 composant firedac pour la connection (test connection ok) avec utf8.
delphi 10.0.3, myql 8
et sur mes child j ai des composants firedac query qui me servent à alimenter des combo box, text edit et autre grid.
tout se passe bien sur 3 child mais sur un c est problematique :
j ai effectué plusieurs tests :
ce child comporte 3 module fdquery
-1/meme configuration que les autres child : au chargement et au focus de ce child (et pas sur les autres) j ai systematiquement erreur firedac phys mysql 308 et mes module combo, edit,memo ...ne se chargent pas.
-2 /sur ce child, j installe un module firedac connection relié au driver mysql du parent et le charset à utf8 : m^me comportement que 1
-3/ sur ce child je garde la configuration 2 et ne change que le charset du connecteur en le mettant à "none" : aucun message d erreur, connexion ok mais ..... au chargement des modules toutes les données de ma base accentuées ou avec caractères speciaux sont mal restituée (et ayant une base avec des prénom,nom etc.... je ne peux me permettre de tout passer en majuscule ou supprimer les caractères accentués).
j ai déjà qq années de prog derrière mois et là je dois dire que je tourne un peu en rond, surtout devant le coté non generalisé du pb (3 child ne rencontrent pas de pb), et cela tant en select, update ou insert...
si quelqu un a ne serait ce qu une piste à explorer.
element de solution partiel
après le retour de SergioMaster, j ai continué recherche sur ces pistes et ai trouvé 2 élements qui répondent partiellement au pb :
1/sur la base mysql j étais en utf 8 mais apres qq recherches ai découvert que l utf8 Mysql n est pas complétement standard, il encode sur 3 octets alors que la norme est 4 donc passage en utf8-mb4
2/lors de la saisie sur mes modules les noms et prenoms peuvent etre saisi en minuscule comme majuscule et dans le code je fais un uppercase avant l insert dans la bd or de ce fait j avais inséré un René dans la base et le é n a pas été transformé par l uppercase
et ensuite lors de la restitution il bloquait le fdquery sur le select. J ai mis un E majuscule à la place dans la base et plus de pb.
mais serait ce à dire que l uppercase est à évité pour passé de minuscule à majuscule, qu utiliser ?
forcer le majuscule via la propriété charcase des TEdit
Merci Sergio , tu ne m as pas apporté la solution mais l échange m a mis sur la piste