Versuch einen BLOB mittels ADODB zu schreiben scheitert

Liebe Leute,

ich will ein excel macro von Oracle auf postgresql portieren und scheitere
an dem Versuch einen Blob in die DB zu laden. Der unten stehende
Code gibt mir bei

rs2(0).AppendChunk ByteData()

den Fehler:

operation is not allowed in this context.

Da ich weder VBA noch database expert bin, braeuchte ich wirklich dringend Hilfe.


Sub Exportsql()


Dim FileLength As Long
Dim Numblocks As Integer
Dim ByteData() As Byte
Dim SourceFile As Integer

Dim cn As ADODB.connection
Set cn = New ADODB.connection
With cn
.ConnectionString = “DSN=postgres;pwd=epcuser”
.Open
End With

Set ret = cn.Execute(“DROP TABLE IF EXISTS mytesttable”)
Set ret = cn.Execute(“CREATE TABLE mytesttable (id integer, myblob bytea)”)


Set ret = cn.Execute(“INSERT INTO mytesttable VALUES (1, null)”)

str2 = “Select myblob from mytesttable where id = 1”
Dim rs2 As ADODB.Recordset
Set rs2 = New ADODB.Recordset
rs2.CursorType = adOpenKeyset
rs2.LockType = adLockOptimistic
rs2.Open str2, cn

ReDim ByteData(2)

ByteData(0) = 17
ByteData(1) = 32

rs2(0).AppendChunk ByteData()
rs2.Update


End Sub

Mates,

Umstellung auf einen ADODB stream geht besser, aber noch immer habe ich
ein Problem. Offensichtlich darf der byteA blob nur eine sehr kleine Groesse
haben (ca. 1kb), sonst bekomme ich den folgenden Fehler:

“Multiple step OLE DB operation generated error.”

Hat jemand einen Tipp fuer mich. Vielen Dank,

Stephan

-----------------------------------8<---------------------------------

Dim rs2 As ADODB.Recordset
Set rs2 = New ADODB.Recordset
rs2.CursorType = adOpenKeyset
rs2.LockType = adLockOptimistic

rs2.Open str2, cn

Set mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
workbookPath = ActiveWorkbook.Path

mstream.LoadFromFile “test.fps”
rs2.Fields(bytea_field(0)).Value = mstream.Read
rs2.Update
mstream.Close