La lecture du contenanu d'un champ texte de la base ne donne que la moitié des c

Signaler
Messages postés
2
Date d'inscription
vendredi 21 mai 2004
Statut
Membre
Dernière intervention
24 avril 2009
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Configuration :
- Base de données MySql 5.0.51 sur serveur distant
- Pilote ODBC MySql ODBC 5.1 Driver
- Visual Basic VB 6
- Microsoft DAO 3.6

Symptôme :
- Colonne dans la base de données : colonne VARCHAR(50)
- Lecture de la colonne : seulement la moitié des caractères

Code :
- Set rst = cnn.OpenRecordset("SELECT * FROM table ;", dbOpenDynamic, dbExecDirect, dbOptimistic)
- rst.MoveFirst
- ls_nomcolonne = rst.Fields("colonne")


PatPauOli

2 réponses

Messages postés
2
Date d'inscription
vendredi 21 mai 2004
Statut
Membre
Dernière intervention
24 avril 2009

C'est un problème de jeux de caractères.

Dans la base de données le jeux de caractère du champ utilise un codage sur deux octets par caractère.

Il faut donc utiliser un jeu de caractère sur un seul octet par exemple UTF-8


Tout est ici : http://www.siteduzero.com/tutoriel-3-36943-comprendre-les-jeux-de-caracteres-et-interclassements.html

PatPauOli
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
- c'est illisible
- tu postes dans "Thèmes / VB.NET et VB 2005 /" et tu codes en VB6
- conseil: Passes en ADO, DAO est l'ancienne techno.


inutile (et lourd) de faire un SELECT * si tu ne souhaites qu'un champ...

Où vois tu que tu n'a pas tous tes caractères ?
en debug, ou dans un textbox (qui serait tronqué du fais d'un MaxLength mal réglé) ?