[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    833

    RPG Resultset verarbeieten

    Hallo ,

    in einem RPG Programm verarbeite ich ein Resultset.
    Soweit kein Problem.

    Das Resultset sieht beispielhaft so aus :
    PHP-Code:
    AUFNR  LAGER
    100    900
    150    901
    200    900
    250    901
    ...
    ...
    ... 
    etc
    Nachdem die Subfile gefüllt ist soll das Resultset nochmal gelesen werden
    um Duplikate zu ermitteln.

    Gibt es die Möglichkeit mit SQL das Resultset nochmal zu verarbeiten so das nur
    die Lagernummern zurückliefert werden ?
    Also das Ergebnis 900 und 901

    Gruß
    Michael

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das macht keinen Sinn.
    Hier hilft her ein
    select f1, Count(*) from myfile Group by f1 having Count(*) > 1
    um Duplikate zu erkennen.

    Um ein Resultset noch mal zu lesen muss er Scrollable sein.
    Oder mach einen Close/Open.
    Oder ...
    oder ...
    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
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Nein, gibt es keine Möglichkeit.
    Zumindest nicht sofern der Cursor innerhalb der Stored Procedure nicht als Scroll Cursor definiert wurde.
    Bei einem Scroll Cursor kannst Du mit Fetch Before erneut positionieren und die Datensätze erneut verarbeiten. Allerdings kann man auch in diesem Fall die Reihenfolge der Datensätze nicht beeinflussen.
    Um Duplikate zu ermitteln, müssen die relevanten Daten bei Verarbeiten des Result Sets in Feldgruppen gesichert und anschließend ausgewertet werden.

    Anderenfalls bleibt Dir nur die Procedure erneut aufzurufen (aber wie gesagt man hat keinen Einfluss auf die Reihenfolge der Datensätze).
    Auch wenn man in dem Programm den Cursor durch CLOSE schließen kann. Der OPEN wird immer in der Stored Procedure ausgeführt, d.h. versucht man einen OPEN im RPG Programm wird dieser mislingen. Man kann allenfalls, wie bereits vorgeschlagen die Stored Procedure erneut aufrufen.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Jan 2001
    Beiträge
    833
    Hallo ,

    und danke. Das habe ich mir schon gedacht.

    Ich überlege mir etwas anderes.

    Wünsche eine schöne Woche

Berechtigungen

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