[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2
  1. #13
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Die "ID des codierten Zeichensatzes (CCSID)" des Jobs steht auf 65535, während die "Standard-ID des codierten Zeichensatzes" auf 273 steht. Was ist eigentlich der Unterschied zwischen diesen beiden bzw. worauf wirken die sich aus ?
    Wie kann ich feststellen welche CCSIDs die Programmquellen haben ?
    Wäre es da sinnvoll solche varianten Zeichen direkt als HEX-Codes abzufragen, wenn sowieso keine Umsetzung erfolgt ? Diese müssten dann ja gleich sein.

    Gruß,
    KM

  2. #14
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Die "ID des codierten Zeichensatzes" gilt für alle Zugriffe auf Datenobjekte mit CCSID (DB/MSGF) für die Codewandlung.
    Die "Standard-Id..." gilt für Erstellbefehle (CRTPF, CRTDSPF, CRTPRTF, SQL: CREATE TABLE, ...) ohne explizite CCSID-Angabe.

    Die CCSID deiner Quellen steht in der Quellendatei (Source) "DSPFD FILE(QRPGSRC) TYPE(*ATR)".

    Die Hex-Abfrage eines varianten Zeichens ist genauso unsinnig wie die direkte Abfrage.

    Probier doch mal folgendes aus:

    Gib folgendes Kommando ein:
    "DSPLIB LIB(#LIBRARY)"

    Stelle dein Terminal nun z.B. auf 297 (Französisch) und wiederhole den Befehl.
    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. #15
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    So langsam kommt bei mir ein wenig Licht ins Dunkel der Zeichensätze. Ich habe jetzt festgestellt, dass wir bei unseren Datenbankdateien doch ein Mischmasch aus CCSID 65535 und 273 haben. Ich habe jetzt schon überlegt alle Dateien auf 273 zu ändern, hab's aber zum Glück noch nicht gemacht. Jetzt ist nämlich noch folgendes passiert. Ein polnischer Benutzer (mit CCSID 1153 im USRPRF) hat sich angemeldet. Somit hat sein Job auch 1153. Er wollte auf eine Datei zugreifen, die mit CCSID 273 definiert ist. Dann kam folgender Fehler:

    Message . . . . : Datei PROGTEXT in Bibliothek DTDAT nicht geöffnet.
    Ursache . . . . : Die Öffnung der Datei PROGTEXT in der Bibliothek DTDAT
    wurde wegen Ursachencode 2 abgebrochen. 1 -- Die Kennzeichnung für den
    codierten Zeichensatz (CCSID) 1153 wurde nicht gefunden. 2 -- Die Umsetzung
    zwischen der Job-oder Programm-CCSID 1153 und der CCSID 273 für die Datei
    PROGTEXT mit dem Format *N in der Bibliothek DTDAT ist nicht definiert. 3 --
    Die Umsetzung der ASCII-Daten mit der CCSID 1153 wird nicht unterstützt. 4

    Offenbar kann nicht von CCSID 273 in 1153 umgewandelt werden. Verstehe ich das so richtig ? Habe jetzt den Job in 65535 geändert. Jetzt kann wieder mit der Datei gearbeitet werden.

    Was bringt es mir dann eigentlich, wenn ich überall eine CCSID gemäß der Primärsprache eintrage, die dann aber wegen der nicht durchführbaren Konvertierung zu Programmabbrüchen führt ? Sollte ich nicht doch die Dateien auf 65535 umstellen und lieber dafür sorgen, dass immer mit einer entsprechend konfigurierten Device auf die Daten zugegriffen wird ?

    Gruß,
    KM

  4. #16
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Hier muss man den Unterschied zwischen den Sprachräumen Latin1 (deutsch, englisch, franz., ital., span. ...) und Latin2 (poln. grich., kroat., serb., russ. ...) betrachten !
    Zwischen diesen ist eine Konvertierung nicht definiert, da auch generell unterschiedliche Symbole in den Zeichensätzen vorkommen und es somit zu Darstellungsverlusten kommt.
    Solange du die Daten sortenrein auseinanderhalten kannst, magst du mit 65535 gut fahren. Spätestens wenn du mit ODBC/FTP, IFS o.ä. auf die Daten zugreifen willst, werden die Probleme erst richtig anfangen.
    Woher soll denn die AS/400 wissen, welche ASCII-Codepage gilt ?
    Beim ODBC werden Zeichenfelder mit 65535 normalerweise NICHT umgesetzt, du erhältst auf dem PC dann den EBCDIC-Code.
    Klickst du aber "Zeichenumsetzung für CCSID 65535" an, nimmt die AS/400 den Standardwert der installierten Primärsprache (e.g.273) an und wandelt dann in die ANSI-Codepage des PC's (Deutsch 1252, Polnisch ????).
    Was das nun für die polnischen Daten bedeutet kannst du dir ja vorstellen.

    Mehrsprachigkeit vor allem unterschiedlicher Sprachräume erfordert ggf. ein Redesign der DB !
    D.h., Normalisierung bezüglich der Text- und Nicht-Text-Felder, wobei es Textschlüssel geben mag, die überall gleich sind, aber das weiß die AS/400 ja nicht.
    Pro Sprachraum (Latin1, Latin2, ...) eine eigene Daten-Lib !
    Wo gibt es tatsächlich den Zwang für Konsolidierung der Daten über Sprachgrenzen ?

    Anwendung von DBCS, noch besser UNICODE so wie es die Windows-PC's schon länger machen.

    Bei einem anderen Kunden von mir arbeiten die Polen halt in Englisch !
    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. Sekundärsprache Französisch
    By ukoh19 in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 11-05-06, 13:39
  2. Sekundärsprache Rumänisch
    By takeoff/400 in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 21-11-05, 16:08
  3. Dringend brauche Sekundärsprache polnisch V5R3
    By GEA in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-03-05, 12:37
  4. Sekundärsprache
    By KM in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 26-04-04, 10:07
  5. Sekundärsprache Spanisch
    By GM in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 30-11-01, 11:04

Berechtigungen

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