[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    833

    Insert BLOB im Servicepgm

    Hallo zusammen,

    ein Programm soll ein Service aufrufen in dem ein Insert mit einem BLOB Feld
    gemacht werden soll.
    Service:
    PHP-Code:
     exec sql
        insert into VISITRD05P
           
    (DIDDOCUMENTDOCUMENTDATEDOCUMENTTEXTDOCUMENTUSERCHANGETIMECHANGEUSER  )
         
    OVERRIDING USER VALUE
                values
    (:DBInsertVISITRD05P.DID,
                       :
    DBInsertVISITRD05P.DOCUMENT ,
                       :
    DBInsertVISITRD05P.DOCUMENTDATE,
                       :
    DBInsertVISITRD05P.DOCUMENTTEXT,
                       :
    DBInsertVISITRD05P.DOCUMENTUSER,
                       
    current timestamp ,
                       :
    PgmUser
                              
    ); 
    Die Fehlermeldung ist
    PHP-Code:
     SQL0312Position 40 Variable DOCUMENT nicht definiert oder nicht verwendbarReasonNo declaration for the variable existsthe declaration is not within the current scope, or the variable does not have an equivalent SQL data type
    Das Feld DOCUMENT ist als BLOB Feld in der Tabelle definiert.

    Der Satz der Tabelle wird über eine DS an den Service geliefert
    PHP-Code:
      dcl-ds DBInsertVISITRD05P  extname('VISITRD05P'qualified alias;
      
    end-ds



    Hat jemand eine Idee wie ich ein BLOB in den Service übergeben kann ?
    Gruß
    Michael

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Schau dir erst mal die Spoolauflösung des BLOB's an.
    Möglicherweise wird der Typ BLOB ignoriert und muss manuell definiert werden.
    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
    Jan 2012
    Beiträge
    1.120
    Ein Blob kann nicht mittels einer extern definierten Datenstruktur zwischen Programmen übertragen werden. Der Blob ist ja kein Datentyp, mit dem RPG zurechtkommt. Als Feld wird man in der Datenstruktur nur einen Pointer sehen, aber nicht den eigentlichen Wert des Blobs.

    Die Frage ist, wo dein Blob bisher gespeichert ist. Wahrscheinlich in einer Tabelle. Du könntest dem Service dann den Namen der Tabelle und den Namen des Blobfeldes und den Schlüssel der Tabelle usw. übergeben und der Service könnte sich dann ein dynamisches SQL-Statement zusammenbauen und den Blob selber lesen und bei sich speichern.

    Ich fürchte, du kannst nur mit SQL Mitteln Blobs verarbeiten!

    Dieter

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Man muss eine manuelle DS definieren. Hier kann man dann den BLOB als SQLTYPE(BLOB) definieren.
    Die Länge des BLOB ist dann allerdings auf 16MB minus dem Rest der Felder beschränkt, da die DS 16MB nicht übersteigen kann.
    Will man größere Werte verarzten kann man nur noch mit LOB-Locatoren arbeiten.
    Die klassische Externe DS entfällt dann natürlich.
    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. BLOB Feld
    By mk in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 19-06-19, 07:26
  2. sql commit und servicepgm
    By mk in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 23-10-18, 14:35
  3. Clob to Blob
    By dschroeder in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 31-08-16, 15:32
  4. Prozeduren in Servicepgm von einem Anderen Programm aus aufrufen.
    By dholtmann in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 22-07-16, 08:57
  5. Trigger mit Servicepgm
    By Robi in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 28-05-02, 16:45

Berechtigungen

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