[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2014
    Beiträge
    28

    RPGLE SQL - Anzahl der Zeilen auslesen

    Hallo!

    Ich habe heute mal wieder eine Auwertung erstellt, bei der ich über eine logische Datei nur die Felder anzeige, die ich brauche und alle Sätze, die ich nicht brauche über OMIT im DDS ausschließe. Diese LF lese ich dann mit SQL in einem SQLRPGLE Programm mit einem Cursor und einer Schleife aus.

    Da ich mal gelesen habe, dass man das am besten mit einer
    Code:
    Dow SQLCODE = 0
    Schleife macht, hab ich das auch gleich versucht. Nur leider wurde SQLCODE nie ungleich "0". Auch SQLSST/SQLSTATE ist immer '00000'.

    Um das Ganze aber dann doch zum laufen zu bringen, hab ich kurzerhand einfach ein
    Code:
    SELECT COUNT(*) INTO :max_count FROM...
    davor geschalten und in der Schleife einen Counter hochgezählt solange Counter <= max_count.
    Nur denke ich allerdings, dass man das auch irgendwie performanter machen kann.

    Gibt es eine Möglichkeit für den deklarierten Cursor, der als Statement ein
    Code:
    SELECT * FROM
    hat, zu ermitteln, wie viele Zeilen es am Ende sind? Oder ist meine Architektur einfach nur Mist?

    Wäre für hilfreiche Ratschläge dankbar!
    Lg Radinator

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Also ein FETCH sollte schon einen SQLCODE = 100 am Ende liefern.
    Da ich dies so nicht direkt im DOW abfragen kann, geh ich einfach folgendermaßen vor:

    exec sql open...;
    dow 1=1;
    exec sql fetch ....;
    if SQLCODE <> *zero;
    leave;
    endif;
    enddo;
    exec sql close...;

    Die Anzahl zähle ich selber, da der Cursor die Anzahl nicht liefert und ein Select count(*) die Daten ein 2. Mal verarbeitet.

    Deine LF mit Select/Omit kannst du vergessen. Beobachte mal per Debugger, ob diese LF denn von SQL überhaupt verwendet wird.
    I.d.R. wird eine LF mit select/omit nur verwendet, wenn die Where-Klausel des SQL's der Definition der LF entspricht (ab v7.x). Ansonsten wird dein SQL nämlich neu generiert mit den Select/Omit der LF und auf die PF losgeschickt.
    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: 05-07-18, 14:11
  2. Anzahl offener Datenpfade mittels API auslesen
    By wilfried in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 19-07-17, 08:49
  3. SQL Selektion u. Ausgabe von Zeilen
    By MiMarkow in forum NEWSboard Programmierung
    Antworten: 16
    Letzter Beitrag: 29-03-17, 16:26
  4. Antworten: 2
    Letzter Beitrag: 10-03-05, 17:50
  5. #6252 T12 Stahlbanddrucker (1200 Zeilen/Min)
    By pbock in forum NEWSboard Server & Hardware Markt
    Antworten: 0
    Letzter Beitrag: 02-12-02, 11:01

Tags for this Thread

Berechtigungen

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