[vb]Blob geeft niet terug wat erin is gegaan.

Pagina: 1
Acties:

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:30

sopsop

[v] [;,,;] [v]

Topicstarter
Ik schrijf een waarde in een Blob veld van een database.
Visual Basic .NET:
1
2
3
dim i as Variant
i = 356
rs("BlobVeld") = i


Vervolgens haal ik op een later tijdstip die data er weer uit.
Visual Basic .NET:
1
2
dim i as Variant
i = rs("BlobVeld")


De waarde die i bevat is geen 356 maar een array van Bytes.
Hoe kan ik de Blob uitlezen?
(Omdat ik in dat databaseveld zowel Propertybags als integers of zelfs tekst wegschrijf moet het veld in de database van het type blob zijn.)

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
door i te converteren naar een integer?
Waarom wil je eigenlijk een blob veld gebruiken? In een alfanumeriek veld kan je ook strings en integers kwijt hoor. Die integers moet je dan wel nog even converteren naar een string.

https://fgheysels.github.io/


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:30

sopsop

[v] [;,,;] [v]

Topicstarter
Maar daar kun je geen Propertybag in kwijt.

I converteren in een integer bedoel je met het uit de blob lezen of met het wegschrijven in de blob?

  • El_Quedro
  • Registratie: September 2001
  • Laatst online: 04-08-2025

El_Quedro

Pininfarina

dim i as Variant

maak daar dit ff van:

dim i as Integer

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 28-08 15:30

sopsop

[v] [;,,;] [v]

Topicstarter
ik heb 'm gevonden.
ik schrijf i in een propertybag
dus:
Visual Basic:
1
2
3
4
dim pb as propertybag
Set PB = New PropertyBag
PB.WriteProperty "EEN", mPrefs.Field(i)
rs("BlobVeld") =  PB.Contents


En het uitlezen:
Visual Basic:
1
2
3
Set PB = New PropertyBag
PB.Contents = rs("BlobVeld")
i = PB.ReadProperty "EEN"


Blijkbaar is het vrij lastig om iets wat geen object is in een Blob te schrijven.
Overigens is dit ook niet de manier die ik zou kiezen, maar ik ben nou eenmaal afhankelijk van aanroepen van functies (dit stuk zit in een security DLL).