[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2001
    Beiträge
    170

    Umsetzung Klein- in Großbuchstaben

    Hallo @all,

    wie kann ich elegant ganze Felder von Klein- in Großbuchstaben umsetzen, am Besten im free-Format ?
    Ich bin hier im Forum über das API QDCXLATE gestolpert.
    Hilft das weiter ? Und wenn ja, wo bekomme ich die Umsetzungstabellen her ?

    Oder geht das Ganze noch einfacher ?
    Die einzelnen Buchstaben per Schleife durch den LOOKUP zu schicken wäre ja wohl die letzte Lösung.

    Vielen Dank im voraus

    Holger Lossin

  2. #2
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hi,

    versuchs mal mit

    PHP-Code:
    dUP               c                   CONST('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
    dLO               c                   CONST('abcdefghijklmnopqrstuvwxyz')
    dMyString         s              255a
    .
    .
     /
    Free
       MyString 
    = %XLATE(lo:up:MyString);
     /
    End-Free 
    Gruß

    Sascha

  3. #3
    Registriert seit
    Apr 2002
    Beiträge
    792
    P.s.:

    Wenn es sich um eine SQL-Quelle handelt, kannst du natürklich auch SQL bemühen

    PHP-Code:
    DMyString         S             255A  inz('kleinschrift')
    C/Exec SQL Set :MyString Upper(:MyString)
    C/End-Exec 
    Gruß

    Sascha

  4. #4
    Registriert seit
    Nov 2001
    Beiträge
    170
    Vielen Dank !

    Werde beides testen, wobei ich SQL erstmal
    schöner finde.

    Holger Lossin

  5. #5
    Registriert seit
    Apr 2001
    Beiträge
    127
    Hallo @lossin,
    zu RPG Handbuch SC09-1817-00 RPG400 Reference Seite 377.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.295
    SQL ist insoweit auch eleganter, da Sonderzeichen je nach CCSID entsprechend berücksichtigt werden.
    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
    Registriert seit
    Feb 2006
    Beiträge
    25
    Mit SQL muss man erst prüfen, denn
    z.B.

    select upper(trim(usnam1) concat ' ' concat usnam2 )

    liefert HANS MüLLER

    Richtig:

    select trim(upper(usnam1)) concat trim(upper(usnam2))

  8. #8
    Registriert seit
    Apr 2002
    Beiträge
    792
    Zitat Zitat von mariupol1963
    Mit SQL muss man erst prüfen, denn
    z.B.

    select upper(trim(usnam1) concat ' ' concat usnam2 )

    liefert HANS MüLLER

    Richtig:

    select trim(upper(usnam1)) concat trim(upper(usnam2))
    Sorry aber ich vestehe die Problematik nicht?! Bei mir sieht beides gleich aus. Oben eben mit Blank dazwichen. Es geht ja aber hier auch um die direkte Variablenumsetzung in einem PGM. Da ist mit Select dann ja eh nichts.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.295
    Klar geht das im PGM mit SQL:

    set :myvar = upper(:myvar)

    Ich muss nicht immer Dateizugriffe programmieren.
    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

  10. #10
    Registriert seit
    Apr 2002
    Beiträge
    792
    Moin,

    sag ich ja aber wo ist denn im genannten Bsp. der Unterschied (also ich meine in der Ausgabe außer dem selbst eingefügten Blank)?

    Gruß

    Sascha

  11. #11
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365
    Zitat Zitat von JonnyRico
    Moin,

    sag ich ja aber wo ist denn im genannten Bsp. der Unterschied (also ich meine in der Ausgabe außer dem selbst eingefügten Blank)?

    Gruß

    Sascha
    H

    allo Sascha.

    Der Unterschied ist beim NICHT umgesetzten Umlaut 'ü' !!!

    Gruß Joe

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.295
    Auch hier gibt's wieder mal ein CCSID-Problem:

    Bei "trim(upper(usnam1)) concat trim(upper(usnam2))" wird die CCSID des Datenbankfeldes verwendet, so dass wohl eine korrekte Umsetzung erfolgen kann.

    Bei "select upper(trim(usnam1) concat ' ' concat usnam2 )" muss ein temporäres Feld angelegt werden. Dieses erhält die CCSID des Job's.
    Steht der Job aber auf 65535 (aus Systemwert QCCSID), kann nur eine korrekte Umsetzung der nicht varianten Zeichen erfolgen.
    Setze den Job auf eine korrekte CCSID, dann erfolgt auch hier eine Umwandlung.
    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. Antworten: 4
    Letzter Beitrag: 06-06-06, 09:34
  2. Software für Umsetzung in DDS
    By ADAM in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 10-02-06, 10:43
  3. Empfängerwert zu klein
    By mmaschke in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 06-04-05, 08:53
  4. Umsetzung von Umlauten
    By DEVJO in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 24-03-05, 11:29
  5. Umsetzung 5250 Anwendungen mit Websphere
    By sufukli in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 09-07-02, 14:16

Berechtigungen

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