[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2007
    Beiträge
    13

    EOF in SQL-Prozedur sauber abfragen

    Wie kann ich in einer SQL-Prozedur in eine Loop EOF sauber abfragen?

    Zur Veranschaulichung - die Source:

    CREATE PROCEDURE MASSWART
    LANGUAGE SQL
    BEGIN
    DECLARE RTGN CHAR(18);
    DECLARE P_OK CHAR(1);
    DECLARE P_RETURN CHAR(7);
    DECLARE at_end SMALLINT DEFAULT 0;

    DECLARE not_found CONDITION FOR SQLSTATE '02000';

    DECLARE C1 CURSOR FOR SELECT DISTINCT RTGNRB FROM RTGPF0RB WHERE RTGTRB = 'V' AND TNOCRB = '1434096' AND RTGNRB LIKE '0A159%' ;
    DECLARE C2 CURSOR FOR SELECT DISTINCT RTGNRB FROM RTGPF0RB WHERE RTGTRB = 'V' AND TNOCRB = '1434096' AND RTGNRB LIKE '0A159%' ;

    DECLARE CONTINUE HANDLER FOR not_found SET at_end = 1;

    OPEN C1;
    FETCH_LOOP1:
    LOOP
    FETCH C1 INTO RTGN;

    IF at_end <> 0 THEN
    LEAVE fetch_loop1;
    END IF;


    SET p_ok = ' ';
    CALL RTSMAW3(RTGN, P_OK);
    IF P_OK <> ' ' THEN
    LEAVE FETCH_LOOP1;
    END IF;

    END LOOP;

    CLOSE C1;

    IF P_OK <> ' ' THEN
    GOTO ENDE;
    END IF;

    OPEN C2;
    FETCH_LOOP2:
    LOOP
    FETCH C2 INTO RTGN;
    IF at_end = 1 THEN LEAVE FETCH_LOOP2; END IF;

    IF RTGN IS NULL THEN
    LEAVE FETCH_LOOP2;
    END IF;

    CALL RTSPGASX('AT', 'AT', 'AT', RTGN, '*READ', ' ', ' ', P_RETURN);
    UPDATE RTSPFASW SET TNOCRW = '1434124' WHERE RTGNRW = RTGN AND TNOCRW = '1434096';
    CALL RTSPGASX('AT', 'AT', 'AT', RTGN, '*UPDATE', ' ', ' ', P_RETURN);

    END LOOP
    FETCH_LOOP2;
    CLOSE C2;

    ENDE: set p_ok = ' ';
    END

    Das Problem, dass ich dabei habe, ist, dass ich zu den roten Anweisungen genau 1x (mit dem ersten Ergebnis) hinkomme!

    Was ist dabei falsch? Soll man solche Abfragen überhaupt anders gestalten - und wann ja wie?

    Besten Dank

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    SQLCODE = 100 heißt das Zauberwort.
    Genauso wie in embedded SQL auch.

    Allerdings auch SQLCODE < 0 gehört ggf. abgefragt.
    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. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. Quersumme mit SQL abfragen
    By behmer in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 03-08-06, 09:53
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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