Problème bizarre de récupération d'une chaîne...

Résolu
titoudoun Messages postés 20 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 8 mars 2006 - 12 déc. 2005 à 09:39
titoudoun Messages postés 20 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 8 mars 2006 - 12 déc. 2005 à 10:42
Bonjour à tous !

J'ai à nouveau un problème sur ma base de données. En effet, j'ai une requête qui doit renvoyer un texte, mais le programme génère une erreur... Le code donne ceci :

Set sqlRec = cnn.OpenRecordset("select texte from citation where idcitation=3")
vararray = sqlRec.GetRows(1)
chaine = vararray(0, 0)
sqlRec.Close

La base de données est faite sous easyphp. J'ai entré le champ texte comme un varchar(1000), mais easyphp me le convertit aussitôt en type Text (est-ce là le problème ?).

Dans le programme VB l'openrecordset passe bien, ainsi que la récupération de la réponse avec le vararray. Mais quand je souhaite mettre le champ texte dans la variable chaîne(String), il me génère une erreur d'exécution 13 : type incompatible.

Pour ma part, puisque vararray est de type Variant, j'ai voulu savoir de quel sous-type il était (j'aurai pensé String puisque le résultat est une longue chaîne). J'ai trouvé un type correspondant à 8204. J'ai cherché dans l'aide à quoi correspondait ce type : rien...

Quelqu'un pourrait-il m'aider à résoudre ce problème bizarre ? Je ne comprend pas pourquoi le programme est capable de récupérer un champ varchar mais pas un champ Text...

Je vous remercie infiniment d'avance car je ne pense vraiment pas trouvé seul.

A très bientôt et excellente journée à tous !

2 réponses

cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
12 déc. 2005 à 09:46
Bonjour,

le problème vient sans doute du fait qu'un varchar(1000) est considéré comme un mémo donc une récupération normale ne doit pas être possible
renseigne toi sur les récup de mémos
3
titoudoun Messages postés 20 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 8 mars 2006
12 déc. 2005 à 10:42
C'est bon ça semble marcher ! :)
J'ai cherché dans l'aide le type mémo, je suis retombé sur les objets Fields.
J'ai juste eu à faire TextBoxCitation.Text = sqlRec.Fields("texte").Value après le OpenRecordset et visiblement ça marche. Le programme doit choisir le type mémo de lui-même (ou le type qui convient en général) dès qu'on utilise une collection Fields. Apparement la méthode du vararray et du getRows ne marche qu'avec les types simples. Merci infiniment pour ton aide ! :)

A bientôt !
0
Rejoignez-nous