Problème avec le Recordset de VB sur les LONG

Résolu/Fermé
Osungo - 14 sept. 2007 à 17:26
Osungo Messages postés 2 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 17 septembre 2007 - 17 sept. 2007 à 13:51
Bonjour,

Dans le cadre d'un projet j'ai besoin d'insérer dans un champ de table une chaine de caractère très grande. VARCHAR2 étant limité à 4000 octets un collègue m'a conseillé d'utiliser LONG comme type de données pour ce champ.

Avec le champ mis à LONG, mon application enregistre parfaitement la chaine de caractère dans la table.
Mais dans mon application de récupération de ces données le recordset de VB me retourne une valeur vide alors que lorsque j'exécute la même requête sur PL/SQL je récupère bien ma chaine de caractère.

Ma base de données est Oracle 8.1.7 et mes applications sont sous VB6.

Voici un extrait de mon code pour récupérer cette chaine dans ma base.


Dim LvsRequete As String
Dim RsRequete As ADODB.recordset
Dim InfoFichier as string
LvsRequete = "Select * from TB_TRAITEMENT2 where ID= 7"
Set RsRequete = gobjConnection.Execute(LvsRequete)
If RsRequete.EOF = False Then
RsRequete.MoveFirst
End if
InfoFichier = RsRequete.Fields("TR_FICHIER")


RsRequete.Fields("TR_FICHIER") ne me retourne rien...
Lorsque TR_FICHIER était de type VARCHAR2 dans ma base de données je n'avais aucun problème lors de la récupération de ces données avec le RecordSet.

J'espère avoir été suffisamment clair et que vous serez capable de m'aider sur ce problème.
A voir également:

3 réponses

assisdevantsonpc
14 sept. 2007 à 18:43
Bonjour Osungo
essaye avec InfoFichier = RsRequete.Fields("TR_FICHIER").value
0
Osungo Messages postés 2 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 17 septembre 2007
17 sept. 2007 à 09:10
Bonjour et merci pour ta réponse.

J'ai essayé avec InfoFichier = RsRequete.Fields("TR_FICHIER").value mais la valeur retournée reste nulle.
0
Osungo Messages postés 2 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 17 septembre 2007
17 sept. 2007 à 13:51
Bon en bidouillant un peu partout, j'ai trouvé comment résoudre ce problème
avant la commande Set RsRequete = gobjConnection.Execute(LvsRequete)

il faut changer le cursorlocation par la commande suivante
gobjConnection.CursorLocation = adUseClient

par défaut apparement le cursorlocation est à adUseServer ce qui causait mon problème sans que je sache pourquoi.
0