[NEWSboard IBMi Forum]
Seite 3 von 4 Erste ... 2 3 4 Letzte
  1. #25
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    CP 1252 ist die ANSI-Entsprechung von 273 EBCDIC und nur im IFS anwendbar.
    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

  2. #26
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... mit CCSIDS widerspreche ich dir ungern, da kennst du dch eigentlich besser aus als ich --- aber:
    das mit der Umsetzung im Serverjob hätte zur Folge, dass Information verloren geht, wenn in Tabellen mehrere CCSIDS vorkommen, da nämlich "fremde" Daten nicht ohne Verlust umgesetzt werden können.
    Ich habe noch keinen JDBC Treiber von innen angesehen, weiß aber (mittlerweile) was so über die ARDPGM und DRDA Schnittstelle geht; da werden die Daten per SQLDA beschrieben (die die CCSIDs der Felder und Daten mit beschreibt) und die Daten werden binary geschickt.


    Dieter

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Dies ist deshalb nötig, da ja auch der Serverjob die Daten beim Lesen in die Job-CCSID konvertiert (ausser bei 65535) bevor diese dann per ODBC verschickt werden.
    Der ODBC/JDBC-Treiber wandelt diese dann in seinen entsprechenden Code um (UTF8, Unicode, ANSI, ASCII).

    Für den AS/400-ODBC/JDBC gibts dann halt noch die Einstellung für die HEX-Umsetzung von CCSID 65535:
    a) Job-CCSID wenn <> 65535
    b) 037 wenn = 65535
    Wobei dann allerdings tatsächliche Hexwerte (also echte Binärfelder) nicht verarbeitet werden können.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #27
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... 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 Zitat von beegee Beitrag anzeigen
    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
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #28
    Registriert seit
    Feb 2002
    Beiträge
    61
    Da steht 1141:

    BTTEXT CHAR 75 75 14 Beides BTTEXT
    Feldtext . . . . . . . . . . . . . . . : TEXTZEILE
    ID des codierten Zeichensatzes . . . . . : 1141

  5. #29
    Registriert seit
    Feb 2002
    Beiträge
    61
    Jetzt kenne ich mich nicht mehr aus: habe in der Datenbank in der DDS beim betreffenden Feld folgendes angegeben:

    BTTEXT 75G TEXT('TEXTZEILE')
    CCSID(13488)

    Dann die Daten mit CPYF wieder reinkopiert, aber im Java kommt wieder die Sonne und nicht das Eurozeichen

  6. #30
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... was heißt denn hier im Java?
    Zitat Zitat von beegee Beitrag anzeigen
    Jetzt kenne ich mich nicht mehr aus: habe in der Datenbank in der DDS beim betreffenden Feld folgendes angegeben:

    BTTEXT 75G TEXT('TEXTZEILE')
    CCSID(13488)

    Dann die Daten mit CPYF wieder reinkopiert, aber im Java kommt wieder die Sonne und nicht das Eurozeichen
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #31
    Registriert seit
    Feb 2002
    Beiträge
    61
    Warte, beim Kopieren habe ich eine Blödsinn gemacht.....

    Java heisst, dass ich die Daten mittels JDBC in eine Java-Anwendung einlese und verarbeite...

  8. #32
    Registriert seit
    Feb 2002
    Beiträge
    61
    Also mit
    BTTEXT 75G TEXT('TEXTZEILE')
    CCSID(13488)
    würde es zwar funktionieren, allerdings sind nach dem CPYF alle Eurozeichen nicht mehr in der Datei. Erst wenn ich welche in der Datenbank hinzufüge, habe ich diese dann auch nach dem SQL verfügbar.

    Also für historischen Datenbestand eigentlich nicht brauchbar.

  9. #33
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... davon sieht man noch nix, wo (auf welcher Büchse) und wie lässt du dir das anzeigen...


    Zitat Zitat von beegee Beitrag anzeigen
    Warte, beim Kopieren habe ich eine Blödsinn gemacht.....

    Java heisst, dass ich die Daten mittels JDBC in eine Java-Anwendung einlese und verarbeite...
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  10. #34
    Registriert seit
    Feb 2002
    Beiträge
    61
    Entwicklung Java (6) mit Netbeans für Fat-Windows-Clients mit Datenbankzugriff auf die iSeries.

  11. #35
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    @Dieter
    Das ist ja genau das was auch passiert.
    Wenn du in eine SBCS-CCSID Daten verschiederner Sprachen hineinschreibst, musst du schon selber wissen, wie die Daten wieder zu interpretieren sind (Stichwort 3-fach-cast).
    SQL weiß das eben nicht und wandelt immer zwischen DB und Job ausser wenn einer von beiden *HEX ist.

    Ein ODBC-Job ist niemals *HEX !
    Bei SBCS hast du eben genau die erwarteten Darstellungsverluste (nicht zu verwechsalen mit Datenverlusten).
    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

  12. #36
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ich nehme mal an (genau weiß das wohl nur die IBM), dass beim Kopieren von 1141 nach 13488 intern über 273 gewandelt wird.

    Du kannst ggf. für die historischen Daten mittels
    insert into neuedatei
    select * from altedatei

    und anschliessendem

    update neuedatei
    set feldxxx = replace(feldxxx, x'9F', '€')

    (wenn x'9F' der €-Code ist)
    die Daten reparieren.
    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
  •