[VB6] Nientemeno che salvare un blob in un byte array :|
Strano a dirsi, c’è ancora gente che usa Visual Basic 6; ancor più strano, non ho trovato in rete un modo furbo di mettere il contenuto di un blob in un array di byte. Il più furbo che ho trovato credo fosse salvarlo su file e poi leggere da file, ma del resto stiamo parlando appunto di sviluppatori Visual Basic (ammmòri :*).
Normalmente il metodo Read dell’oggetto ADODB.Stream restituisce una Variant (vade retro), ma non si offende se il risultato lo piazzate direttamente in un array di byte, quindi il sistema è presto trovato (unica difficoltà capire che lo stream va “riavvolto” e ricordarsi la sintassi per creare array in VB).
(lascio questo messaggio nella bottiglia se servisse ancora a qualcuno… anche se io per esempio cercavo direttamente termini inglesi e quindi non me lo troverei, questo post… direte voi, scrivilo in inglese… uff…)
[...]
Dim con As adodb.Connection
'a un certo punto la creo, la apro, eccetera, ma questo lo saprete
[...]
Dim rstblob_in As ADODB.Recordset
Dim dbstream As ADODB.Stream
Set dbstream = New ADODB.Stream
dbstream.Type = adTypeBinary
dbstream.Open
Set rstblob_in = New Recordset
rstblob_in.Open "select ILBLOB from TABELLA " _
& "where ID='cippirimerlo'", con, adOpenStatic
Dim letto As Boolean
letto = False
If Not rstblob_in.EOF Then
If rstblob_in("ILBLOB").ActualSize > 0 Then
dbstream.Write rstblob_in("ILBLOB")
letto = True
End If
End If
If letto Then
dbstream.Position = 0 'riavvolgo il nastro
Dim ilblob() As Byte
ilblob = dbstream.Read
'e poi ne fate quel che volete
End If

Giuro che la sintassi per creare l’array in vibbì non me la scorderò mai, mai mai!
:)
emauff
7 Mar 07 at 10:39
Dunque questo post è servito a qualcosa :’)
xD
StM
7 Mar 07 at 10:50
O certo si si, eccome!
Concordo su tutto.
Con doppio scappellamento a destra.
Perdindirindina!
La Meringa
7 Mar 07 at 13:54
…ma sono finita sul pianeta Marte, per sbaglio?…visto che sono capitata qui posso intervistare qualcuno? :-)
djlàmu
7 Mar 07 at 15:35
(un mio ex collega ti potrebbe dire che siamo sul pianeta Mercole, ahaha :| )
(scherzo, una battuta così demente può venire in mente solo a me :| )
StM
7 Mar 07 at 15:42