View Full Version : Aus ILE Programm direkt in IFS schreiben
Hallo. Wenn ihr das neueste TR drauf habts dann gibts da jetzt neue SQL-Funktion(en):
https://www.rpgpgm.com/2020/11/writing-to-ifs-file-with-sql.html
Ich konnte es aber leider noch nicht selber testen/verwenden :-(
LG
Nun ja, und noch eine Methode....;-).
Wie immer, viele Wege führen nach Rom.
Bzgl dem CLOB_FILE... hier füge ich beim schreiben immer einen CAST ein (sicher ist sicher).
zB:
//--------------------------------------
DCL-PROC Main;
DCL-S File SQLTYPE(CLOB_FILE) CCSID(1208) INZ;
File_Name = '/tmp/test.txt';
File_NL = %Len(%TrimR(File_Name));
File_FO = SQFOVR;
Exec SQL SET :File = CAST('Test1-' AS CLOB CCSID 1208);
File_FO = SQFAPP;
Exec SQL SET :File = CAST('Test2-' AS CLOB CCSID 1208);
END-PROC;
Was man sich eben durch die Angabe von CCSID direkt auf der Variablen sparen kann.
Hallo,
zunächst einmal: Herzlichen Dank für die vielen Antworten! :-) Das ist richtig beeindruckend!
habe mir mal das von Scottklement.com angeschaut und auch ein entsprechendes Programm erstellt. Es funktioniert auch. Die Datei wird erstellt.
Das Problem: Den Inhalt kann ich mir (egal welche Codepage ich nehmen) im WINDOWS Explorer nicht ansehen. Da sieht es der Inhalt von "helloworld.txt" so aus:
È…““–@æ–™“„@
Im iNavigator sieht es korrekt aus!
hat jemand Erfahrung damit?
RobertMack
26-01-21, 09:10
Mein Trick ist, die Datei nach dem Erstellen gleich zu schliessen und erneut zu öffnen:
Flags = O_WRONLY + O_CREAT + O_APPEND + O_CCSID;
Mode = S_IRWXU + S_IRWXG + S_IRWXO;
Fd = Open(%Trim(IfsLink):Flags:Mode:1252);
Callp Close(Fd);
Fd = Open(%Trim(IfsLink):O_CCSID+O_WRONLY+O_TEXTDATA:0: 0);
Hallo Robert,
vielen Dank für die Info.
Ich habe die Datei geöffnet, reingeschrieben und wieder geschlossen!
Deine Vorgehensweise werde ich gleich heute Mittag ausprobieren!
Bin gespannt, ob das auch mit ö,ä,ü und ß funktioniert.
Herzliche Grüße Frank
Warum immer so kompliziert, wenn doch SQL die einfachste Methode ist?
Ok, ich bin letzten auf ein Kundensystem gestoßen, wo ich keine SQL-Programme erstellen kann;-).
Warum immer so kompliziert, wenn doch SQL die einfachste Methode ist?
Ok, ich bin letzten auf ein Kundensystem gestoßen, wo ich keine SQL-Programme erstellen kann;-).
Dann erstell' das Programm das nächste Mal auf einer Maschine mit SQL und übernimm' das Objekt.
Die Runtime ist auf jedem System vorhanden, d.h. embedded SQL Programme können auch ausgeführt werden, wenn kein SQL installiert ist! (War übrigens schon immer so!)
RobertMack
26-01-21, 13:07
Warum immer so kompliziert, wenn doch SQL die einfachste Methode ist?
Zugegeben ;-) Allerdings gibt es Dinge, ich mit SQL gar nicht erst versuchen würde. Zum Beispiel Office XML mit Variablen oder Textbausteinen mischen, statisches HTML mit Google Charts schreiben…