-
Müsste nicht auch funktionieren, wenn man die CCSID des SQL-Serverjobs auf 1141 stellt ?
Weiß wer, wie der SQL-Serverjob auf der iSeries heisst, bzw. wie man den im WRKACTJOB findet ?
 Zitat von Fuerchau
Datenbank-CCSID ist da leider nicht ausreichend sondern die JOB-CCSID des SQL-Server-Jobs, und die stammt aus QCCSID, da leider eine JOBD keinen CCSID-Wert kennt !
Zur Erklärung:
Der SQL-String wird in der CCSID des Serverjobs verarbeitet, die Daten extrahiert, als JOB-CCSID-konform interpretiert und anschließend in die DB-CCSID umgewandelt.
Arbeitet nun das System mit QCCSID=65535 kann man sich nun ausdenken, was passiert.
Notfalls kann man sich auch damit behelfen, dass der gesamte SQL als UNICODE übertragen wird (ODBC-Konfiguration).
Das habe ich allerdings noch nicht ausprobiert.
-
 Zitat von beegee
Müsste nicht auch funktionieren, wenn man die CCSID des SQL-Serverjobs auf 1141 stellt ?
Weiß wer, wie der SQL-Serverjob auf der iSeries heisst, bzw. wie man den im WRKACTJOB findet ?
Wenn du z.B. mit ODBC auf die Datenbank zugreifst ist das das Subsystem QUSRWRK und die Jobs QZDASOINIT:
Code:
WRKACTJOB SBS(QUSRWRK) JOB(QZDASOINIT)
-
Tja, dachte ich auch - aber diese Jobs haben alle CCSID 1141 und trotzdem habe ich in meiner Java-Anwendung nur das Sonnensymbol und nicht das Eurozeichen.
-
Die Darstellung des Eurozeichens ist AS/400-spezifisch, in UNICODE (Java, Windows) belegt es eine andere Stelle und muss daher leider selber gemappt werden.
Korrekt funktionierts wahrscheinlich nur, wenn auch die AS/400-Datei in UCS2 (CCSID 13488) steht.
-
Selbst wenn ich die Toolbox JT400 nehme, muss ich mich um die Umsetzung kümmern, sprich mit einem replace ?
Übrigens, ein CHPF auf die CCSID 13488 wird mit Fehlermeldung
CPD322C abgebrochen (Ursachencode 5 - Die Daten sind für die angegebenen CCSID-Werte ungültig.)
@Pikachu: genau diesen Job suche ich, wo noch 273 drinnen steht.
-
... das hat mit der CCSID des Database Serverjobs nix zu tun. Die Daten haben in der Table (oder auf Feldebene) eine Codierung und der JDBC Treiber hat das nach UTF8 zu konvertieren. Wenn das nicht klappt, ist an der Table, oder dem Inhalt was faul, oder der Treiber hat einen Bug.
D*B
 Zitat von beegee
Selbst wenn ich die Toolbox JT400 nehme, muss ich mich um die Umsetzung kümmern, sprich mit einem replace ?
Übrigens, ein CHPF auf die CCSID 13488 wird mit Fehlermeldung
CPD322C abgebrochen (Ursachencode 5 - Die Daten sind für die angegebenen CCSID-Werte ungültig.)
@Pikachu: genau diesen Job suche ich, wo noch 273 drinnen steht.
-
... da sagt Fürchau aber genau das Gegenteil (19-04-07, 13:31 )
Deswegen bin ich auf den Serverjob gekommen.
-
... was da ODBC macht, habe ich nix zu gesagt. JDBC legt da fest, was rauskommen muss...
Was hat denn deine Tabelle, bzw. das Feld für eine CCSID - und was steht denn nun drin?
D*B
 Zitat von beegee
... da sagt Fürchau aber genau das Gegenteil (19-04-07, 13:31 )
Deswegen bin ich auf den Serverjob gekommen.
-
Zuerst hatte diese 273, habs auf 1141 geändert - hatte aber keine Auswirkung.
Das steht drinnen - Klartext:
1 Digitalkamera Olympus C350 (3,2) € 26
Hex: 9F.....
F4C888A899898984D9A99AA4CFFF44F6F5444494FF
10497931321459106384742033500D3B2D0000F026
-
... mach mal einen DSPFFD, was da auf Feldebene steht.
Ich habe mir mal eine Tabelle mit einem 273 und einem 1141 Feld angelegt und da Euros reingeschrieben, Hex steht da immer die 9F drin, der Grüne zeigt das alles gnadenlos als Euro an, im JDBC kommt das 1141 Feld als Euro rüber, dass 273 als Rune oder Keilschrift. Welche CCSID der Job auch immer haben mag (auf Holgers Möhre darf ich mir das nicht angucken und meine schläft gerade), weiß ich nicht 1141 jedenfalls nicht...
D*B
 Zitat von beegee
Zuerst hatte diese 273, habs auf 1141 geändert - hatte aber keine Auswirkung.
Das steht drinnen - Klartext:
1 Digitalkamera Olympus C350 (3,2) € 26
Hex: 9F.....
F4C888A899898984D9A99AA4CFFF44F6F5444494FF
10497931321459106384742033500D3B2D0000F026
-
Da steht 1141:
BTTEXT CHAR 75 75 14 Beides BTTEXT
Feldtext . . . . . . . . . . . . . . . : TEXTZEILE
ID des codierten Zeichensatzes . . . . . : 1141
-
Das Problem ist, dass 1141 intern ja 273 ist und nur die 5250 das €-Symbol für diesen Codepunkt kennt.
Ich denke mit einem CAST auf UCS2 kannst du das ggf. erledigen (CHGPF geht da nicht):
cast(Feld as vargraphic(nn) ccsid 13488) as Feld
nn ist die definierte Länge.
Similar Threads
-
By svente in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 23-01-07, 09:49
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 25-09-06, 08:22
-
By steven_r in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 18-07-06, 09:36
-
By Nennewitz in forum NEWSboard Programmierung
Antworten: 16
Letzter Beitrag: 28-06-06, 13:49
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-05-06, 12:40
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