-
Warum muss es denn unbedingt CLP sein?
Kannst du das nicht per SQLRPGLE ganz einfach mit "set : MyBuffer = : MyFileVar" machen?
Das Stichwort hier ist CLOB/BLOB/DBCLOB für den Puffer und CLOB_FILE:
Code:
dcl-ds IFS_File qualified inz;
Filename SQLTYPE(CLOB_FILE); // Standard-ANSI ISO-8859-1
END-DS;
dcl-ds *n static;
FileString SQLTYPE(DBCLOB:8000000) ccsid(1200);
END-DS;
IFS_File.FILENAME_NAME = %trim(Filename);
IFS_File.FILENAME_NL = %len(%trim(IFS_File.FILENAME_NAME));
IFS_File.FILENAME_FO = SQFRD; // Datei lesen
exec sql values(:IFS_File.Filename) into :FileString;
-
Hallo!
Danke für die Idee! Das muss ich jetzt ins Festformat umgesetzt bekommen!
Gruss Peter
-
Was ja auch kein Hexenwerk ist;-).
Beim C-API könnte es noch an den beteiligten CCSID's liegen.
Prüfe die CCSID der IFS-Datei (Attribute anzeigen) und deines Job's.
Da ja viele im Glauben sind, mit der System-CCSID 65535 am Besten zu fahren, steht der Job natürlich auch auf 65535. Somit gibt es beim Open Probleme, da das System nicht in die korrekte CCSID wandeln kann.
Dies wird dir übrigens mit ILERPG dann auch passieren. Mein Vorschlag wandelt die Daten in Unicode um. Möchtest du die Daten im SBCS-Code bearbeiten, so muss der Job auf eine korrekte CCSID gesetzt werden.
-
Bei der C-APi habe ich dann noch eine Frage!
Muss ich nur die CCSID des Job und der Datei berücksichtigen oder auch die des Verzeichnispfads?
Wie ich RDi nachvollziehen konnte wechselt diese munter,. Je nachdem auf welchem Ordner des Pfad man steht!
-
Dies kommt darauf an, mit welcher Methode die IFS-Datei erstellt wird.
Machst du dies native auf der AS/400 so gibst du die CCSID immer an.
In den entsprechenden Parametern wird u.U. auf Defaults hingewiesen.
Dabei gilt:
*PCASCII = 850 (die alte DOSe)
1252 = Windows ANSI westeuropa
65535 = Binär
1200 = UTF-16
1208 = UTF-8
Ebenso greifen da auch die C-API's auf CCSID's zurück (Default u.U. *JOB).
Dateien die über Netzfreigaben hereinkommen, erhalten dei Default-CCSID des NetServers.
Diese ist im Netserver einstellbar, Default ist meist 850!
Bei FTP-Übertragungen gibt es 2 Möglichkeiten:
CHGFTPA => Default-CCSID für ankommende Daten
FTP-Befehle: type c 1252 => Type Ccsid nnnn
RDI arbeitet in ANSI-Windows und muss in die CCSID der SRC-PF wandeln.
Es sei denn, du arbeitest u.U. bereits mit IFS-Dateien, da sollte eigentlich wieder 1252 vorkommen.
Für die automatisch Codewandlung gilt grundsätzlich:
Beide Seiten, Job + Objekt, müssen eine CCSID nicht gleich *HEX haben. Dabei kann es auch schon mal zu unkompatibilitäten kommen (mit entsprechender Laufzeitmeldung).
Similar Threads
-
By storock in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 05-10-18, 08:47
-
By svit in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 23-01-17, 11:27
-
By oulbrich in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 23-03-15, 17:21
-
By rr2001 in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 27-05-14, 13:44
-
By it-wolf in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 19-07-02, 16:27
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks