Announcement

Collapse
No announcement yet.

Blobs in Informix-Datenbank schreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Blobs in Informix-Datenbank schreiben

    Hallo Freaks,

    ich habe ein Problem beim Einfügen in ein Text-Blob bei einer Informix-Datenbank.

    Der Anwender soll einen Freitext ändern können, der anschliessend in einem Text-Blob gespeichert werden soll.

    Arbeite ich mit TTable und DBMemo funktioniert das auch. Leider scheidet diese Möglichkeit bei 600000 Datenätzen aus.
    Der Zugriff via TTable selektiert alle Sätze aus der Datenbank um dann über Filter den einen benötigten Satz auszufiltern.
    Das ist sowohl von der Zugiffszeit, als auch von der transferierten Datenmenge nicht zumutbar.

    Beim Zugriff über TQuery ist es mir weder mit TUpdateSql noch mit OnUdateRecord möglich den geänderten Text im Blob zu speichern.

    Informix sagt dazu:

    You can insert data into BLOB columns in the following ways:
    - With the dbload or onload utilities
    - With the LOAD statement (DB-Access)
    - With the FILETOBLOB function
    - From BLOB (ifx_lo_t) host variables (Informix ESQL/C)

    Die einzige Möglichkeit aus Delphi heraus ist hier der "Informix ESQL/C"-Weg.

    Da Delphi die SQL-Zugriffe sehr sorgfältig verbirgt, finde ich keine Möglichkeit den geänderten Text im Blob zu speichern.

    Kann mir da bitte jemand auf die Sprünge helfen ??

    mfg Heinz-Dieter Schlosser

  • #2
    Hallo Heinz-Dieter,

    TQuery ist schon der richtige Weg. Die Daten muß man zuerst in einen BLOB-Stream schreiben, bevor man diesen in die DB schreibt. Schau mal in der Online-Hilfe unter TBlobStream.

    Grüße Joche

    Comment


    • #3
      <PRE>
      var
      pQuery : TQuery;
      pBlobStream : TBlobStream;
      begin
      ...
      pQuery.Edit;
      pBlobStream := TBlobStream.Create(TBlobField(pQuery.FieldByName(' feld')), bmWrite);
      pBlobStream.Write...; // Stream füllen
      pBlobStream.Free;
      pQuery.Post;
      ...
      </PRE>
      Gruß Thoma

      Comment


      • #4
        Hallo Thomas,

        das ist der richtige Weg, glaube ich. Danke dass du ihn mir gewiesen hast

        Gruss Diete

        Comment

        Working...
        X