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

patpauoli Messages postés 2 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 24 avril 2009 - 24 avril 2009 à 15:11
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 24 avril 2009 à 15:18
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

patpauoli Messages postés 2 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 24 avril 2009
24 avril 2009 à 15:16
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2009 à 15:18
- 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é) ?
0
Rejoignez-nous