[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Apr 2004
    Beiträge
    19

    Unerwartetes Nullfeld

    Hallo

    ich arbeite mit ILE-RPG auf V5R3. Ich möchte gerne im RPG SQL-Tables lesen. Immer wieder bekomme ich beim Lesen von Sätzen die Meldung "CPF5035" mit dem Hinweis "unerwartetes Nullfeld gefunden". Lässt sich diese Prüfung abschalten oder umgehen?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Umgehen lässt sie sich nicht !
    Prüfe dein SQL warum NULL auftreten kann auch wenn du es eigentlich nicht erwartest (meistens fehlende Join-Daten).

    Kann also NULL vorkommen muss du sog. NULL-Anzeiger (2-Byte binär) definieren und natürlich vor dem Zugriff auf die Variable prüfen:

    D MySQLField 10
    D MySQLInd 5I 0

    select /fetch ... into :MySQLField :MySQLInd, ...

    Wichtig ist also, dass der NULL-Anzeiger als 2. Variable hinter dem Zielfeld ohne Komma angegeben wird.

    Die 2. Variante ist das Setzen eines Default's beim Select, wenn NULL vorkommanen kann:

    Select coalesce(MyField, ' '), coalesce(MyNum, 0), ...

    Ist der 1. Wert NULL, wird der 2. Wert genommen.
    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
    Apr 2004
    Beiträge
    19
    Danke,

    Die Datei wird IP (input primary) gelesen, da komme ich an den Wert nicht ran.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Gib beim CRTBNDRPG/CRTRPGMOD ... ALWNULL(*YES) an, dann kannst du per %NULLIND(Variable) den Status abfragen.

    Schau dir per DSPFFD die Datei an, welche Variablen dies sein können.
    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

  5. #5
    Registriert seit
    Apr 2004
    Beiträge
    19
    Das Problem ist, er sagt mir genau die Variable an der er rausfliegt. Er fiegt bereits beim Lesen des Satzes, bevor ich überhaupt eine Chance habe auf irgendwelche Felder zuzugreifen. Ich muss die Prüfung komplett abschalten.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Genau dies tust du ja mit der H-Bestimmung oder Compiler-Option !
    Das Lesen von NULL-Werten wird dann erlaubt !
    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

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo Andreas,

    Du must in den H-Bedingungen das Schlüssel-Wort ALWNULL(*UsrCtl) oder ALWNULL(*InputOnly) angeben. Mit der ersten Option können NULL-Werte sowohl gelesen als auch zurückgeschrieben werden, mit der zweiten Option können NULL-Werte nur gelesen werden.

    In Deinem Programm kannst Du dann mit Hilfe der Funktion %NullInd() prüfen, ob in einem bestimmten Feld ein NULL-Wert steht oder nicht.

    Birgitta
    Birgitta Hauser

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

Similar Threads

  1. Gruppenstufe auf Nullfeld
    By Jenne in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 13-05-05, 13:06
  2. Nullfeld einlesen
    By Jenne in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 25-02-05, 13:25

Berechtigungen

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