-
Daten aus QAOKP09A lesen
Hallo,
ich möchte aus den Directory-Einträgen Daten für eine Applikation auslesen. Unter anderem wäre das der Vorname und der Familienname. Leider werden beim Lesen der Datei QAOKP09A die Umlaute nicht korrekt dargestellt. Ein Ö wird zu \ und ein Ü wird zu [ usw.
Gibt es eine Möglichkeit die Daten korrekt aus QAOKP09A zu lesen?
Danke im Voraus
Hermann TEUFL
-
Da diese Datei wohl noch nicht "modernisiert" ist, die Datei als auch die Felder noch keine CCSID enthalten, sind diese Daten als Binärdaten zu interpretieren. Es erfolgt also keinerlei Umsetzung der Daten in eine andere CCSID.
Nun liegt es also an den Terminals, mit welcher CCSID (Hostcodepage) die Datenerfassung erfolgte.
Das Auslesen klappt dann leider nur, wenn der Job mit derselben CCSID läuft, in der die Erfassung erfolgte.
Nun kommt es noch darauf an, wohin du die Daten stellst um die korrekte Codewandlung durchzuführen.
-
Hallo Fuerchau!
Vielen Dank für deine Antwort! Wir haben eine Applikation laufen die automatisch E-Mails an Kunden versendet (QTMMSENDMAIL). Die Darstellung des E-mails ist soweit OK nur bei der Zieladresse würde ich gerne Familienname Vorname <Mailadresse> eintragen. Bei Kunden mit Umlauten im Familiennamen oder Vornamen werden die Daten nicht korrekt dargestellt.
D.h. ich müsste die Datei in RPG lesen und in eine IFS Datei korrekt ausgeben können.
Danke
Hermann
-
Wenn du deinen Job auf CCSID 273/1141 und dein Terminal ebenso auf 273/1141 stellst, solltest du die Daten korrekt mit z.B. RUNQRY/STRSQL sehen können.
Ist das der Fall, solltest du deinen Job halt auf 273/1141 stellen um dann das API mit den korrekten Daten zu befeuern.
Ansonsten musst du mal klären, mit welcher Terminal-Codepage die Daten erfasst wurden und dies ggf. mit einem 273/1141-Terminal überarbeiten.
Das Hauptproblem ist immer wieder, dass QCCSID auf dem Default 65535 belassen wird anstatt diesen korrekt zur Sprache einzustellen.
-
Probier doch mal folgendes aus:
select cast(wok9srcl as char(40) ccsid 037) from qusrsys.QAOKP09A
Die Feldinhalte scheinen mit CCSID 037 geschrieben worden zu sein.
Gruß,
KM
-
Das wird nichts bringen, da ein cast von Binär nach CCSID nnn keine Codewandlung vornimmt.
Die Ursache liegt bei C-API's eben häufig daran, dass bei fehlender Job-CCSID dann 037 angenommen wird. In diesem Fall muss ja für das Mail-API von EBCDIC in ASCII umgewandelt werden.
Wenn aber weder Datei noch Job eine CCSID aufweisen schlagen hier eben Defaults zu.
Wir hatten hier aber auch noch einen anderen Fall (C-Api RegEx), dass eine Locale im Job gesetzt sein muss, damit das C-Api korrekt umsetzt.
-
Zitat von Fuerchau
Das wird nichts bringen, da ein cast von Binär nach CCSID nnn keine Codewandlung vornimmt.
... der erste cast bringt nix, aber der nächste. (Ist bei einem Cast 65535 als Quelle oder Ziel dabei wird transparent übertragen, aber das Ergebnis des Cast hat die Ziel CCSID)
D*B
-
Warum soll das nichts bringen?
Sowohl...
select cast(wok9srcl as char(40) ccsid 037) from qusrsys.QAOKP09A
als auch...
select cast(cast(wok9srcl as char(40) ccsid 037) as char(40) ccsid 1208) from qusrsys.QAOKP09A
bringt bei mir das gewünschte Ergebnis. Einmal in CCSID 37 und einmal in UTF-8.
Gruß,
KM
-
CCSID 65535 => CCSID 037 = Keine Codewandlung, Daten sind nun CCSID 037
CCSID 273 => CCSID 037 = Mit Codewandlung, Daten sind nun CCSID 037
CCSID nnn <> 65535 => CCSID mmm <> 65535 = Mit Codewandlung!
Generell sei also nochmal gesagt:
Zwischen CCSID *HEX (65535) und irgend was anderem erfolgt generell keine Codewandlung!
Daher gibt es ja laufend die Probleme:
Terminal 1141 => Job 65535 => DB 273 = keine Codewandlung
Terminal 870 => Job 65535 => DB 273 = keine Codewandlung
Wie soll nun erkannt werden, ob die Daten der DB 1141 oder 870 sind?
-
Zitat von Fuerchau
CCSID 65535 => CCSID 037
= Keine Codewandlung, Daten sind nun CCSID 037
CCSID 273 => CCSID 037 = Mit Codewandlung, Daten sind nun CCSID 037
CCSID nnn <> 65535 => CCSID mmm <> 65535 = Mit Codewandlung!
Generell sei also nochmal gesagt:
Zwischen CCSID *HEX (65535) und irgend was anderem erfolgt generell keine Codewandlung!
Daher gibt es ja laufend die Probleme:
Terminal 1141 => Job 65535 => DB 273 = keine Codewandlung
Terminal 870 => Job 65535 => DB 273 = keine Codewandlung
Wie soll nun erkannt werden, ob die Daten der DB 1141 oder 870 sind?
... wenn denn die Daten alle mit derselben Kodierung in dem 65535 Feld gelandet sind:
- oBdA sei die CCSID mit xxx benannt und das Feld sei yyy und die Länge zzz, dann
cast(yyy as char(zzz) ccsid xxx) (keine Wandlung weil 65535 beteiligt, Feld hat jetzt xxx
mit dem nächsten cast kann ich das Feld dann wandeln in was immer ich will, wenn ich also aaa haben will
cast(cast(yyy as char(zzz) ccsid xxx) as char(zzz) ccsid aaa)
D*B
-
Sind das überhaupt die richtigen Felder?
In WOK9SRCL, WOK9SRCF, WOK9SRCM, WOK9SRCP stehen die Namen doch in Großbuchstaben.
Nimm besser WOK9FULL (Vollständiger Name, entsprechend pflegen) oder hol dir die Werte aus WOK9OPT.
Zitat von hteufl
ich möchte aus den Directory-Einträgen Daten für eine Applikation auslesen. Unter anderem wäre das der Vorname und der Familienname. Leider werden beim Lesen der Datei QAOKP09A die Umlaute nicht korrekt dargestellt. Ein Ö wird zu \ und ein Ü wird zu [ usw.
Similar Threads
-
By dibe in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 16-01-15, 08:22
-
By falke34 in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 11-07-14, 10:32
-
By HelgeNielsen in forum IBM i Hauptforum
Antworten: 12
Letzter Beitrag: 23-04-02, 15:40
-
By HJM in forum NEWSboard Windows
Antworten: 3
Letzter Beitrag: 25-02-02, 22:27
-
By chr in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 01-02-01, 11:00
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