[NEWSboard IBMi Forum]

Thema: Blob-Handling

  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    32

    Question Blob-Handling

    Ich hab ein Blobfeld via SQL-Befehl in einer Tabelle. Prima! Nur wenn ich es mit Daten füllen will, sei es mit einem '' oder 'blabla', dann kommt der Fehler:

    Indexfehler: Eingabevariable mit...nicht verträglich bzw. Daten abgeschnitten ???

    Hilfeeeee!

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207

    Post

    BLOB-Felder können nur über Pointer adressiert werden, d.h., SQL liefert beim Select nur einen Pointer auf den Bereich:

    d myBlobPtr S *
    d MyBlob s 1000 based(myBlobPtr)
    d MyBlob2 s 1000

    /exec sql
    + select myblob into :myblobptr ....
    /end-exec

    Das gleiche gilt auch bei Update/Insert, in diesem Fall ist die Adresse selbst zur Verfügung zu stellen:

    eval myblobptr = %Addr(myBlob2)
    /exec sql
    + update mytable set myblob=:myblobptr ...
    /end-exec

    Der Unterschied ist hier, dass der BLOB-Bereich nicht von SQL angelegt wird.
    Natürlich kann die gelesene Variable auch für Update/Insert verwendet werden.

    Es ist darauf zu achten, dass die Variable MyBlob nicht größer definiert sein darf, als in der Tabelle definiert, da es sonst zu Speicherschutzfehlern kommt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    32
    erstmal dankeschön Herr Fuerchau. Jetzt verstehe ich, warum ich nix sehe, wenn ich ein Blobfeld öffne und einiges mehr. Allerdings greife ich über CA-ODBC auf die Datenbank zu, und programmiere in Delphi. Und da weiss ich nicht wie ich, wenn ich einen neuen Satz anlege, den Pointer für das Blobfeld rauskriege, welches noch gar nicht existiert!!!

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207

    Post

    Das ist etwas anderes.
    Ich weiß zwar nicht, wie die Delphi-Unterstützung aussieht, aber BLOB's werden per ODBC als sog. CHUNK'S geladen, d.h., dass der Feldinhalt nicht sofort verfügbar ist.
    Für das Feld-Objekt gibt es die Methoden GetChunk() bzw. PutChank() mit der die Daten Blockweise gelesen bzw. geschrieben werden.
    GetChunk solange, bis keine Daten mehr da sind (Fehlerereignis), Putchunk bis alle daten geschrieben sind.

    BLOB-Felder werden erst beim Zugriff auf den Inhalt tatsächlich von der AS/400 geladen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. RCLSTG,RGZPFM und co.............
    By bettina_martin in forum NEWSboard SAP
    Antworten: 27
    Letzter Beitrag: 03-01-07, 18:58
  2. CPYF Fehler handling
    By RLPforum in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 05-07-06, 15:04
  3. BLOB Felt in Datei
    By janwijnants in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 08-12-05, 15:58
  4. Error Handling
    By Mark in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 04-11-03, 15:24
  5. DATALINK oder BLOB ?
    By KM in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 30-06-03, 11:44

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •