Récupérer 1 chaîne > 255 caractères à partir d'un recordset ?
2 réponses
teddy
Bonjour,
J'ai un recordset qui me retourne un texte un peu long (300 caractères
environ).
Si je crée une variable string pour récupérer un champ de type commentaire
du recordset (à l'origine provenant du champ MEMO d'une base ACCESS), la
chaîne est tronquée à 255 caractères.
Comment faire pour le récupérer ?
Merci pour votre avis.
Teddy
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-marc
teddy wrote:
Bonjour, J'ai un recordset qui me retourne un texte un peu long (300 caractères environ). Si je crée une variable string pour récupérer un champ de type commentaire du recordset (à l'origine provenant du champ MEMO d'une base ACCESS), la chaîne est tronquée à 255 caractères. Comment faire pour le récupérer ? Merci pour votre avis. Teddy
Hello, le problème est avec ta base ou ton champ, pas avec VB. J'ai fait une table avec un champ nommé Commentaire, ce champ de type "memo". J'ai ensuite mis dedans un texte de exactement 300 caractères.
Puis j'ai fait le programme VB suivant:
Dim db As Database Dim rs As Recordset
Dim dbCommentaire As String
Set db = OpenDatabase("c:jm.mdb") Set rs = db.OpenRecordset("select * from Table1")
Le résultat de l'exécution est sans surprise: len00 commentaire=JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE*
Il n'y a pas de problème particulier de toute façon. Une string en VB6 peut acceuillir plus ou moins 2^31 (environ 2 milliards).
Note: mon exemple est en DAO, mais c'est similaire avec ADO, je peux le garantir :-)
Il faut chercher ailleurs l'origine de ton problème, du genre une déclaration dans le style: dim variable as String *255
Ou alors ton SELECT qui fait n troncage explicite.
En tout cas, une chose est sur: par défaut, ça fonctionne.
Bonjour,
J'ai un recordset qui me retourne un texte un peu long (300 caractères
environ).
Si je crée une variable string pour récupérer un champ de type
commentaire du recordset (à l'origine provenant du champ MEMO d'une
base ACCESS), la chaîne est tronquée à 255 caractères.
Comment faire pour le récupérer ?
Merci pour votre avis.
Teddy
Hello,
le problème est avec ta base ou ton champ, pas avec VB.
J'ai fait une table avec un champ nommé Commentaire, ce
champ de type "memo".
J'ai ensuite mis dedans un texte de exactement 300 caractères.
Puis j'ai fait le programme VB suivant:
Dim db As Database
Dim rs As Recordset
Dim dbCommentaire As String
Set db = OpenDatabase("c:jm.mdb")
Set rs = db.OpenRecordset("select * from Table1")
Le résultat de l'exécution est sans surprise:
len00
commentaire=JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300
CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300
CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300
CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300
CARACTERES JE SUIS UN TEXTE DE*
Il n'y a pas de problème particulier de toute façon.
Une string en VB6 peut acceuillir plus ou moins 2^31
(environ 2 milliards).
Note: mon exemple est en DAO, mais c'est similaire avec ADO,
je peux le garantir :-)
Il faut chercher ailleurs l'origine de ton problème, du genre
une déclaration dans le style:
dim variable as String *255
Ou alors ton SELECT qui fait n troncage explicite.
En tout cas, une chose est sur: par défaut, ça fonctionne.
Bonjour, J'ai un recordset qui me retourne un texte un peu long (300 caractères environ). Si je crée une variable string pour récupérer un champ de type commentaire du recordset (à l'origine provenant du champ MEMO d'une base ACCESS), la chaîne est tronquée à 255 caractères. Comment faire pour le récupérer ? Merci pour votre avis. Teddy
Hello, le problème est avec ta base ou ton champ, pas avec VB. J'ai fait une table avec un champ nommé Commentaire, ce champ de type "memo". J'ai ensuite mis dedans un texte de exactement 300 caractères.
Puis j'ai fait le programme VB suivant:
Dim db As Database Dim rs As Recordset
Dim dbCommentaire As String
Set db = OpenDatabase("c:jm.mdb") Set rs = db.OpenRecordset("select * from Table1")
Le résultat de l'exécution est sans surprise: len00 commentaire=JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE*
Il n'y a pas de problème particulier de toute façon. Une string en VB6 peut acceuillir plus ou moins 2^31 (environ 2 milliards).
Note: mon exemple est en DAO, mais c'est similaire avec ADO, je peux le garantir :-)
Il faut chercher ailleurs l'origine de ton problème, du genre une déclaration dans le style: dim variable as String *255
Ou alors ton SELECT qui fait n troncage explicite.
En tout cas, une chose est sur: par défaut, ça fonctionne.
En fait, je crois que la chaîne est altérée par des CR+LF dans le champ MEMO et par la conception de la requête (truffée de Mid$() pour n'extraire que certaines données) car une partie s'affiche avec des caractères illisibles. Pourtant la requête renvoie un texte (chaîne) correct dans ACCESS mais pas si lancée "à distance" par la page ASP (et ADO). Merci pour ton aide.
"Jean-marc" a écrit dans le message de news: 46d7286c$0$14245$
teddy wrote:
Bonjour, J'ai un recordset qui me retourne un texte un peu long (300 caractères environ). Si je crée une variable string pour récupérer un champ de type commentaire du recordset (à l'origine provenant du champ MEMO d'une base ACCESS), la chaîne est tronquée à 255 caractères. Comment faire pour le récupérer ? Merci pour votre avis. Teddy
Hello, le problème est avec ta base ou ton champ, pas avec VB. J'ai fait une table avec un champ nommé Commentaire, ce champ de type "memo". J'ai ensuite mis dedans un texte de exactement 300 caractères.
Puis j'ai fait le programme VB suivant:
Dim db As Database Dim rs As Recordset
Dim dbCommentaire As String
Set db = OpenDatabase("c:jm.mdb") Set rs = db.OpenRecordset("select * from Table1")
Le résultat de l'exécution est sans surprise: len00 commentaire=JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE*
Il n'y a pas de problème particulier de toute façon. Une string en VB6 peut acceuillir plus ou moins 2^31 (environ 2 milliards).
Note: mon exemple est en DAO, mais c'est similaire avec ADO, je peux le garantir :-)
Il faut chercher ailleurs l'origine de ton problème, du genre une déclaration dans le style: dim variable as String *255
Ou alors ton SELECT qui fait n troncage explicite.
En tout cas, une chose est sur: par défaut, ça fonctionne.
En fait, je crois que la chaîne est altérée par des CR+LF dans le champ MEMO
et par la conception de la requête (truffée de Mid$() pour n'extraire que
certaines données) car une partie s'affiche avec des caractères illisibles.
Pourtant la requête renvoie un texte (chaîne) correct dans ACCESS mais pas
si lancée "à distance" par la page ASP (et ADO).
Merci pour ton aide.
"Jean-marc" <NO_SPAM_jean_marc_n2@yahoo.fr.invalid> a écrit dans le message
de news: 46d7286c$0$14245$ba620e4c@news.skynet.be...
teddy wrote:
Bonjour,
J'ai un recordset qui me retourne un texte un peu long (300 caractères
environ).
Si je crée une variable string pour récupérer un champ de type
commentaire du recordset (à l'origine provenant du champ MEMO d'une
base ACCESS), la chaîne est tronquée à 255 caractères.
Comment faire pour le récupérer ?
Merci pour votre avis.
Teddy
Hello,
le problème est avec ta base ou ton champ, pas avec VB.
J'ai fait une table avec un champ nommé Commentaire, ce
champ de type "memo".
J'ai ensuite mis dedans un texte de exactement 300 caractères.
Puis j'ai fait le programme VB suivant:
Dim db As Database
Dim rs As Recordset
Dim dbCommentaire As String
Set db = OpenDatabase("c:jm.mdb")
Set rs = db.OpenRecordset("select * from Table1")
Le résultat de l'exécution est sans surprise:
len00
commentaire=JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300
CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300
CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300
CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300
CARACTERES JE SUIS UN TEXTE DE*
Il n'y a pas de problème particulier de toute façon.
Une string en VB6 peut acceuillir plus ou moins 2^31
(environ 2 milliards).
Note: mon exemple est en DAO, mais c'est similaire avec ADO,
je peux le garantir :-)
Il faut chercher ailleurs l'origine de ton problème, du genre
une déclaration dans le style:
dim variable as String *255
Ou alors ton SELECT qui fait n troncage explicite.
En tout cas, une chose est sur: par défaut, ça fonctionne.
En fait, je crois que la chaîne est altérée par des CR+LF dans le champ MEMO et par la conception de la requête (truffée de Mid$() pour n'extraire que certaines données) car une partie s'affiche avec des caractères illisibles. Pourtant la requête renvoie un texte (chaîne) correct dans ACCESS mais pas si lancée "à distance" par la page ASP (et ADO). Merci pour ton aide.
"Jean-marc" a écrit dans le message de news: 46d7286c$0$14245$
teddy wrote:
Bonjour, J'ai un recordset qui me retourne un texte un peu long (300 caractères environ). Si je crée une variable string pour récupérer un champ de type commentaire du recordset (à l'origine provenant du champ MEMO d'une base ACCESS), la chaîne est tronquée à 255 caractères. Comment faire pour le récupérer ? Merci pour votre avis. Teddy
Hello, le problème est avec ta base ou ton champ, pas avec VB. J'ai fait une table avec un champ nommé Commentaire, ce champ de type "memo". J'ai ensuite mis dedans un texte de exactement 300 caractères.
Puis j'ai fait le programme VB suivant:
Dim db As Database Dim rs As Recordset
Dim dbCommentaire As String
Set db = OpenDatabase("c:jm.mdb") Set rs = db.OpenRecordset("select * from Table1")
Le résultat de l'exécution est sans surprise: len00 commentaire=JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE 300 CARACTERES JE SUIS UN TEXTE DE*
Il n'y a pas de problème particulier de toute façon. Une string en VB6 peut acceuillir plus ou moins 2^31 (environ 2 milliards).
Note: mon exemple est en DAO, mais c'est similaire avec ADO, je peux le garantir :-)
Il faut chercher ailleurs l'origine de ton problème, du genre une déclaration dans le style: dim variable as String *255
Ou alors ton SELECT qui fait n troncage explicite.
En tout cas, une chose est sur: par défaut, ça fonctionne.