View Full Version : BLOB Feld aus SQL-Tabelle ins IFS übertragen
Hallo Forum,
wie kann ich ein BLOB-Feld aus einer SQL-Tabelle ins IFS übertragen.
(Das BLOB-Feld enthält eine .PDF Datei, die ich öffnen möchte)
Viele Grüße
GJV23
Ich behaupte mal:
Auf dem umgekehrten Weg wie du es gespeichert hast:).
Die Tabelle wird mit einem Fremdprogramm und einem Scanner befüllt.
Wie das genau funktioniert weiss ich nicht.
dschroeder
18-02-15, 10:52
Wir machen das mit einem RPG-Programm. Meinst du das?
Dieter
Per ILERPG und den IFS-API's.
Wenn die Anwendung aber vorsieht, dass Dokumente als BLOB gespeichert werden, sollte diese auch die Extraktion derselben vorsehen.
Da muss doch dann schon was existieren.
Ansonsten musst du tatsächlich mit den IFS-API's experimentieren. Hier ist ggf. darauf zu achten, dass keine Codewandlung durchgeführt wird, da das Dokument wahrscheinlich schon in ANSI ist.
Ja das meine ich.
Gibt es dazu evtl. ein Musterprogramm ?
Josef
dschroeder
18-02-15, 11:27
Hier mal die wichtigsten Stellen aus unserem Programm:
D IFSFile S SQLTYPE(BLOB_FILE) File Ref Var
D FILE_OVERWRITE C CONST(16)
D FILE_APPEND C CONST(32)
* Die in den D-Anweisungen definierte FileReference-Variable wird vom
* Pre-Compiler in eine Struktur umgesetzt. Diese Struktur enthält die
* notwendigen Angaben zur Blob-Verarbeitung:
C EVAL IFSFile_name = %trim(file)
C EVAL IFSFile_NL = %len(%trim(IFSFIle_name)) NameLength
C EVAL IFSFile_DL = 0 DataLength
C EVAL IFSFile_FO = FILE_APPEND FileOption
exec sql select bl_blob into :IFSFile from myLib/myFile
where bl_rec_id = :Record_ID;
Dieter
dschroeder
18-02-15, 11:32
Am besten probierst du das mit dem obigen Code mal aus. Wir hatten bei uns noch das Problem, dass die IFS-Datei, die aus dem Blob gebildet wurde, nicht den richtigen Zeichensatz hatte. Wir haben das dann so gelöst, dass wir zunächst eine leere IFS-File mit dem gewünschten Zeichensatz erstellt haben und das Blob dann in diese leere Datei geschrieben haben.
Dieter
Guten Morgen Dieter (dschroeder)
Vielen Dank für deine Hilfe. Hat bestens funktioniert !
Mir waren diese RPGLE-SQL-Feinheiten neu.
Schöne Grüße aus Tirol
Josef
In den Neuerungen ist das auch nicht dokumentiert. In den aktuellen SQL/RPG-PDF's gibt's da auch keine Hinweise.
Man kommt da von selber eigentlich gar nicht drauf.
Im http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/welcome.html kann man das finden, wenn man gezielt danach sucht.
Ich habe auch erst hier im Forum davon gelesen.