[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.102

    UCS2 oder graph?

    Hallo,
    ich muss nochmal auf mein Thema mit den Zeichensätzen zurückkommen. Wir möchten ja einige Felder so deklarieren, dass man besondere Sprachzeichen (z.B. polnische Sonderzeichen) speichern kann.

    In den DDS-beschriebenen Tabellen haben wir das entsprechende Feld jetzt so definiert:
    Code:
         A            AD_L_ANSPR    60G         TEXT('Ansprechpartner')
         A                                      CCSID(1200)
    In den SQL-beschriebenen Tabellen ist das mit NVAR definiert:
    Code:
     sp_valuew  nvarchar(1000) not null with default ' ',
    Laut DSPFFD scheinen die beiden Definitionen den identischen Zeichensatz zu verwenden, nämlich 1200.

    Wir rätseln jetzt aber, wie wir das im RPG am besten machen. Wenn wir die Felder im RPG z.B. als UCS2(1000) deklarieren, zeigt die Wandlungsliste die CCSID 13488 an. Wäre es besser, die Felder im RPG mit graph(1000) zu deklarieren?

    Wir sind auf Probleme gestoßen, wenn wir die Deklaration mit graph machen. Dann bekommen wir bei Zuweisungen, für die eine Konvertuierung erforderlich ist, folgende Meldung:
    Code:
    g#_l_plz   = f1.l_plz;
    RNF0659: Implizite Zeichenfolgeumsetzung wird für Operand 
    G#_L_PLZ mit CCSID *GRAPH:*IGNORE nicht unterstützt.
    Wir würden die implizite Umsetzung natürlich gerne nutzen. Müssen wir dann die Compile-Optionen umstellen?

    Im Voraus schon mal vielen Dank.

    Dieter

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    In der Datenbank ist es quasi egal, wobei eben neuer N[VAR]CHAR bzw. Graphic 1200 besser zu verwenden ist.
    In ILERPG wird ein Unicode-Feld immer als "C" definiert, wobei es da unerheblich ist, ob da 1200 oder 13488 steht. Dies wird mit UCS2 erreicht (oder eben "C"). *GRAPH ist nicht UCS2 und bedarf dann spezieller Kodierungen.
    Noch ein weiterer Vorteile der CCSID 1200:
    Diese wird von der DSPF und somit der 5250 unterstützt.
    In der klassischen CA allerdings nur SBCS im Client, in der ClientSolutions-5250 mit Aktivierung von Unicode sogar vollumfänglich Unicode, also gleichzeitige Darstellung aller Zeichen bei Verwendung eines Unicode-Fonts. Die CCSID 13488 führt da zum Absturz (anderer Thread).

    Ansonsten sollte man mit einem Repository (wie DDS REFF, Externe DS Template) arbeiten um alle Definitionen per LIKE davon abzuleiten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Zitat Zitat von Fuerchau Beitrag anzeigen
    ... wobei es da unerheblich ist, ob da 1200 oder 13488 steht.
    Ist das wirklich OK? (Bitte entschuldige meine nervige Nachfragen). Wenn wir im RPG 13488 nehmen und in der Datenbank 1200 steht, gibt es ja sicherlich irgendwo Differenzen, sonst wären beide CCSIDs ja gleich. Kann man mit RPG 1200 gar nicht implementieren?

    Mir geht es darum, dass wir ja gerade ganz neu in das Thema einsteigen. Wir möchten da keine unnötigen Kompromisse eingehen, die uns später vielleicht mal ärgern.

    Dieter

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    In RPG sind 1200 und 13488 gleichwertig, wenn als Feldtyp "C" verwendet wird.
    1200 = UTF16, 13488 = UCS2, wobei im RPG grundsätzlich nur UCS2 verwendet wird.
    In der DSPF wird 1200 nun auch von der ClientSolution-5250 voll unterstützt, während die alte 5250 i.W. nur SBCS kann und daher eine Umwandlung von/nach 13488 oder 1200 erfolgt.
    Das selbe gilt für PRTF's, hier muss man nur per FONTNAME eine UCS2-fähige Schrift wählen (Schriften mit Codepoints jenseits von 255).
    Und im ODBC/JDBC-Umfeld wird (bis auf wenige Ausnahmen) grundsätzlich mit Strings in UCS2 gearbeitet. Nur für Transportzwecke (Datei, Netzwerk) wird u.U. von/nach UTF8 gewandelt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Vielen Dank Baldur! Dann werden wir auf dem eingeschlagenen Weg bleiben und im RPG UCS2 verwenden.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Real hast du in ILERPG sowieso keine anderen Chance ohne ständig Konvertier-API's (iConv) zu bemühen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. FTP in QSYS oder IFS
    By sisarr in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 29-09-19, 20:46
  2. Hex-Konstante und UCS2
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 21-09-17, 16:36
  3. SQL Funktion IN oder OR
    By XMan in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 28-07-15, 22:41
  4. V5R1M0 :-))) oder :-(((
    By PS in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 23-08-01, 09:33
  5. Copyimpf zum 2. oder 3. ?
    By horst in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 10-07-01, 15:26

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •