[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    32

    embedded SQL: View mit NULL-Werten verarbeiten

    Hallo in die Runde,

    ich habe eine SQL VIEW, welche in einigen Feldern NULL-Werte enthält

    Ich möchte diesen VIEW jetzt im RPG mit embedded SQL verarbeiten. Bei den Sätzen mit NULL-Werten kommt der SQLCOD -305 und es stehen keine Werte in der Datenstruktur.

    Wie gehe ich in so einem Fall am besten vor? Alle (viele) Felder in der VIEW mit COALESCE umsetzen? Oder gibt's im RPG eine Möglichkeit (ctl-opt)? Oder gibt es noch eine andere Idee?

    Das ist mein Programm:
    ctl-opt option(*nodebugio:*nounref)
    decedit('0.')
    main(main);

    dcl-s sqlstm char(100)
    inz('SELECT * FROM webservice/web01view');

    dcl-ds web01view ext inz qualified end-ds ;

    dcl-proc main;
    exec sql PREPARE prepSQL1 FROM :sqlstm;
    exec sql DECLARE crsr1 CURSOR FOR prepSQL1;
    exec sql OPEN crsr1;
    dou 1 = 0;
    exec sql FETCH NEXT FROM crsr1 INTO :WEB01VIEW;
    if SQLCOD = 100;
    leave;
    else;
    // Verarbeitung
    ENDIF;
    enddo;
    end-proc;

    Vielen Dank.

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    http://newsolutions.de/forum-systemi...0-rows-into-DS

    funktioniert auch bei einzelsatz lesen

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Da du in eine DS fetchst, estelle eine 2. DS mit NULL-Flags:

    D NULLDS DS
    D NULLFLG I5 dim(50)

    FETCH NEXT FROM crsr1 INTO : WEB01VIEW : NULLDS;
    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

  4. #4
    Registriert seit
    Sep 2005
    Beiträge
    32
    Code durch
    dcl-ds nullds;
    nullflg int(5) dim(50);
    END-DS;
    ergänzt. Und die FETCH-Anweisung durch :NULLDS ergänzt. Jetzt kann ich das Programm nicht umwandeln, weil NULLDS nicht definiert oder verwendbar ist. Habe ich Deine D-Bestimmungen falsch in FREE umgesetzt? Was passiert, wenn es mehr als 50 Sätze werden? Warum überhaupt DIM(50)?

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Also: je Feld ist ggf. ein NULL-Flag erforderlich, bei Kannfeldern kann man NULL-Flags verwenden.
    Da dein Fetch in eine DS geht, so ist ein Flag-Array erforderlich.
    Insoweit war mein SQL ein wenig falsch, da ich nicht das Array sondern die DS angegeben habe.
    Der Link zu dem Thema betrifft einen Multi-Row-Fetch, wo je Zeile ein Flag-Array erforderlich ist und in dem Fall benötigt man dann ein 2-dimensionales Array (1.Dim=Zeile, 2.Dim=Spalte).

    Korrigiere deinen SQL in dem du nicht die NULLDS sondern NULLFLG als Array angibst.
    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. Sql Null Werte
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-07-17, 09:12
  2. NULL Felder / CPYTOIMPF
    By cicero22 in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 03-09-14, 18:45
  3. Antworten: 5
    Letzter Beitrag: 23-04-03, 13:48
  4. Datei mit Hex-Werten in RPG verarbeiten
    By DiBagger in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 13-09-02, 12:41
  5. Virtuelle Spalten im VIEW auf NULL
    By KB in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 18-05-01, 15:04

Tags for this Thread

Berechtigungen

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