+ Antworten
Ergebnis 1 bis 2 von 2

Thema: Versuch einen BLOB mittels ADODB zu schreiben scheitert

  1. #1
    Phonon ist offline Neuer Benutzer
    Registriert seit
    24.11.2009
    Beiträge
    2

    Standard 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

  2. #2
    Phonon ist offline Neuer Benutzer
    Registriert seit
    24.11.2009
    Beiträge
    2

    Standard ADODB stream geht besser, aber noch immer ein Problem

    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
    Geändert von Phonon (26.11.2009 um 11:17 Uhr)

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum