[VB6] VIDER CHAMPS OLE

bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 16 oct. 2007 à 13:50
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 17 oct. 2007 à 12:10
Salut,

J'utilise un champs de type OLE pour stocker des fichiers dans une base de données ACCESS.

Jusque là, lorsque je veux remplacer un fichier je supprime l'enregistrement et j'en créé un nouveau pour le nouveau fichier. Ce qui ne me convient guère à cause (incrémentation Auto de l'index).

Est-il possible de vider ce champs OLE afin d'y placer ensuite les nouvelles données binaires ?

J'ai essayer des trucs du genre : Set MonRecordSet("MonChampsOLE").Value = Nothing

Précisions je travail en ADO.

Bonne prog
++

3 réponses

GEDDi Messages postés 206 Date d'inscription lundi 22 novembre 1999 Statut Membre Dernière intervention 3 juillet 2008
16 oct. 2007 à 17:16
Tu ne pourras rien changer à l'incrementation automatique comme ça.
Par contre, as-tu essayé de 'recompacter' ta BDD pour voir si apres une 'purge' du contenu OLE tu récupères bien l'espace consommé par ton INSERT précédent ?

Gérôme GUILLEMIN
Auteur du langage FBSL
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
16 oct. 2007 à 17:25
Mon problème n'est pas au niveau de l'espace disque, mais je répond quand même à ta question : Oui je récupère bien l'espace disque après compactage de la BDD.

Mon problème est bien de vider le champs OLE.
Je le rempli de la façon suivante :
Record("Donnees").AppendChunk bytes()

Donc pour pouvoir y placer un nouveau fichier je dois le vider auparavant.

Pour les autres types de champs le problème ne se pose pas
Record("ChampsTexte").Value = "Nouvelle Valeur"
Et hop c'est remplacé.

Bonne prog
++
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
17 oct. 2007 à 12:10
J'ai fini par trouver. Tout simplement :

Record("Donnees") = Null

Bonne prog
++
0
Rejoignez-nous