[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Oct 2006
    Beiträge
    44

    Unhappy Eurozeichen per SQL

    Hallo zusammen,

    ich versuche gerade mittels der SQL-Anweisung INSERT und dem ClientAccess ODBC-Treiber Daten von Excel auf die iSeries zu übertragen. Programmiert wurde das ganze mit einem Makro. Das Ganze funktioniert auch ganz gut, lediglich mit dem Eurozeichen und vermutlich auch anderen Sonderzeichen hapert es gewaltig.

    Ich versuche z.B. folgenden SQL zu übertragen
    Code:
    insert into daarst (arnrrs, arbzrs) values ('TEST', 'Test € Test')
    In der Datenbank wird dann anstatt dem Eurozeichen ein "grüner Balken" angezeigt.

    Führe ich den gleichen SQL in einer CA-Sitzung (Hostcodepage 1141) aus, dann funktioniert mein SQL, d.h. es wird das EURO-Zeichen korrekt dargestellt.

    Die CCSID der Datenbankdatei ist 273.

    Hab ich hier irgendwas bei der ODBC-Verbindung falsch eingestellt? Oder hat sonst jemand eine Idee wo der Hund begraben sein könnte?
    Vielen Dank!

  2. #2
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Stell doch mal Deine Datenbank-Datei auf CCSID 1141 um und probier's dann nochmal.

    Gruß,
    KM

  3. #3
    Registriert seit
    Mar 2006
    Beiträge
    35

    ODBC Datenquelle konfigurieren

    Hallo,

    benutzt du CA Express als ODBC Datenquelle? Wenn ja, dann setze mal das Häkchen im Reiter 'Umsetzung'!

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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.
    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
    Oct 2006
    Beiträge
    44
    Danke erstmal,

    Als Systemwert für QCCSID war tatsächlich 65535 eingetragen. Den Wert habe ich auf unserem Testsystem jetzt mal geändert. Jetzt funktioniert mein SQL auch.
    Das Umstellen des Systemwertes für die QCCSID würde funktionieren.

    Jetzt habe ich nur noch die Frage(n): Kann irgendwas schief gehen, wenn ich diesen Wert einfach ändere? Auf was muss ich achten?

    Danke!

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nun ja, schief gehen kann da so einiges, aber das hängt von der jeweiligen Anwendung ab.

    So lange alle Clients auf der Hostcodepage 273/1141 stehen wirst du wohl kaum Probleme haben.

    Hast du mehrere Sprachen im Einsatz, insbesonders Osteuropa, fangen deine Problem erst an.

    Sieh auchfolgenden Beitrag:
    http://www.newsolutions.de/forum-sys...d-65535-a.html
    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

  7. #7
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Da kann ich mich Fuerchau nur anschließen. Innerhalb einer CCSID dürfte es keine Probleme geben. Sobald Du aber auch andere Sprachräume benutzt und z.B. manche Zeichen einer CCSID in einer anderen CCSID nicht vorkommen, wirst Du Probleme bekommen. Ich würde also nur umstellen, wenn Du nur eine CCSID verwendest.

    Gruß,
    KM

  8. #8
    Registriert seit
    Oct 2006
    Beiträge
    44
    OK, nachdem unser System nur in Deutschland eingesetzt wird und auch keine weiteren Sprachen außer Deutsch verwendet werden, dürfte es hoffentlich keine Probleme machen.

    Ich werde den Systemwert auf dem Testsystem mal auf 1141 belassen und die nächsten paar Wochen auf eventuell auftretende Fehler achten.

    Vielen Dank!

  9. #9
    Registriert seit
    Feb 2002
    Beiträge
    61
    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 Zitat von Fuerchau Beitrag anzeigen
    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.

  10. #10
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von beegee Beitrag anzeigen
    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)

  11. #11
    Registriert seit
    Feb 2002
    Beiträge
    61
    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.

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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.
    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. per SQL Feld ändern...
    By svente in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 23-01-07, 09:49
  2. update per sql
    By steven_r in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 25-09-06, 08:22
  3. Kopieren per SQL
    By steven_r in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 18-07-06, 09:36
  4. Teildateien per SQL auflisten
    By Nennewitz in forum NEWSboard Programmierung
    Antworten: 16
    Letzter Beitrag: 28-06-06, 13:49
  5. Sortierung per SQL
    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
  •