[NEWSboard IBMi Forum]
  1. #1
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012

    Problem mit SET RESULT SETS

    Folgender SQLRPG-Code liegt hier zugrunde:

    D KDARR DS QUALIFIED DIM(30)
    D KDNR 7 0
    D KDNAM 20C
    .
    .
    C DO 30
    C READ KUNDSTAM
    C EVAL X = X + 1
    C EVAL KDARR(X).KDNR = KDNUMR
    C EVAL KDARR(X).KDNAM = %UCS2(KDNAME)
    C ENDDO
    .
    .
    C/EXEC SQL
    C+ SET RESULT SETS ARRAY :KDARR FOR :X ROWS
    C/END-EXEC

    Ich versuche hier einfach nur ein ResultSet mit Kundennummern und Kundennamen an ein aufrufendes Programm zurückzugeben. Ich benötige für das aufrufende Programm den Kundennamen im Unicode-Format (deshalb UCS2). Allerdings scheint das nicht zu funktionieren, denn das ResultSet kann im rufenden Programm nicht verarbeitet werden. Die Fehlermeldung besteht leider nur aus kryptischen Zeichen, sodass ich damit nicht viel anfangen kann.
    Wenn ich statt des UCS2-Feldes ein Alpha-Feld verwende, dann erhalte ich zwar die Daten im rufenden Programm, jedoch wird keine Codeumwandlung durchgeführt.
    Weiß jemand zufällig wie ich UCS2-Felder im ResultSet zurückgeben kann?
    Ich könnte zwar auch mit einem Cursor arbeiten und einen SQL-Select ausführen. Ich wollte aber die Datei satzweise verarbeiten, da dies deutlich schneller geht.

    Gruß,
    KM

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Was die Geschwindigkeit angeht, ist der SQL nicht langsamer !
    Was die Codepage angeht, muss das Feld für das Resultset auch entsprechend definiert sein:
    D KDNAM 20G CCSID(13488)
    Also als Typ Graphik und mit der entsprechende CCSID.
    Bei UCS2 musst du auch mit einer Verdoppelung der Zeichenbreite rechnen.
    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
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    D KDNAM 20G CCSID(13488)
    Damit hab ich's auch schon versucht. Aber das mosert mir der Compiler an. Die Meldung lautet:

    Der Parameter für das Schlüsselwort CCSID ist ungültig.

    Warum geht es denn nicht mit dem Datentyp "C" ?

    Gruß,
    KM

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ja stimmt, Datentyp "C" ist ja UCS2 !
    Das Problem ist wohl, dass der Job ja in SBCS (also z.B. 273) läuft, bei der Rückgabe also wieder eine Codewandlung in CCSID(273) stattfindet.

    Wo läuft das aufrufende Programm ?
    Auch dieses arbeitet ja ggf. wieder im SBCS-Modus !

    Ich denke der ganze UCS2-Kram läuft nur in Verbindung mit der Aussenwelt (sprich ODBC-Zugriff). In der Innenwelt wird ggf. immer in die Job-CCSID konvertiert.
    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. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. Problem mit Steuerzeichen in Datenbank?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-10-06, 10:07
  3. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39
  4. SET RESULT SETS
    By KM in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 22-05-06, 14:22
  5. Problem mit PHP-ODBC-Connect
    By Etherion in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 19-05-06, 13:31

Berechtigungen

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