[VB6] VIDER CHAMPS OLE

Signaler
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
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

Messages postés
206
Date d'inscription
lundi 22 novembre 1999
Statut
Membre
Dernière intervention
3 juillet 2008

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
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
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
++
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
J'ai fini par trouver. Tout simplement :

Record("Donnees") = Null

Bonne prog
++