[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2004
    Beiträge
    444

    Probleme mit e DS und nullvalue ?

    Hallo,

    ich habe Probleme nachdem ich in meinem Programm eine Datei als externe Datenstruktur eingefügt habe.

    Situation vorher:

    Datei CHTRNP ist in den F-Bestimmungen angegeben und wird mit WRITE im Programm ausgegeben.
    Keine Probleme
    Die Datei hat allerdings Datumsfelder mit DATFMT(*ISO) und ALWNULL

    Situation nachher:
    Ich füge eine externe Datenstruktur mit Name DS@CHTRNP e DS extname(CHTRNP) ein und das Programm stürzt mir beim WRITE ab wegen Dezimaldatenfehler.

    Muss ich irgendwas angeben wegen der NULL-Values ?

    Vielen Dank

    Viele Grüße harkne

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Hast Du Deine Datenstruktur auch initialisiert?

    Wenn nicht solltest Du sie unbedingt in den D-Bestimmungen initialisieren oder bevor Du sie befüllst zumindest mit CLEAR bereinigen.

    Sollte das nicht helfen, musst Du die NULL-Werte explizit mit %NULLIND(YourField) setzen.

    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

  3. #3
    Registriert seit
    May 2004
    Beiträge
    444
    Ich habe in den H-Bestimmungen ALWNULL(*USRCTL) angegeben. Jetzt geht es.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das hat mit NULL-Values nichts zu tun, sondern tatsächlich mit nicht initialisierten Feldern der DS.
    %nullind() muss vor jedem Write explizit gesetzt werden, da der Status immer auf dem letzten Wert stehen bleibt.
    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 2005
    Beiträge
    385
    Die num. Felder sind bei einer uninitalisierten DS ebenfalls mit *BLANKS gefüllt (x'040404') daher der Dezimaldatenfehler.
    clear DS@CHTRNP sollte die Probleme lösen. Aber Achtung mit den Datumsfelder, die können (wenn das PGM mit CVTOPT *DATETIME gewandelt wurde) dann auch *BLANKS sein...

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ein Clear initialisiert Typ-Gerecht.
    Bei OPM ist ein Datumsfeld ja vom Typ CHAR, bei ILE vom Typ L.
    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
    May 2004
    Beiträge
    444
    Danke für alle Antworten, aber es hat in diesem Fall ausschließlich mit ALWNULL zu tun.
    Das Programm lief die ganze Zeit fehlerfrei. Unsere NULL-Felder werden immer vor dem Schreiben gesetzt und auch vor dem Update. Es ist auch nie ein Fehler aufgetreten, erst als ich jetzt die externe DS eingefügt habe. Ich habe es auch mit einem clear auf die Datenstruktur zuvor probiert, aber wie ich mir bereits gedacht habe, hat das nichts geändert da wir beim Schreiben eh alle Felder einzeln initialisieren. Das Programm lief ja auch wieder als ich die e ds auskommentiert hatte. So nach dem ALWNULL läuft das Programm auch wieder richtig.

    Vielen Dank für die Hilfe

  8. #8
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Note: When the INZ parameter is not specified:

    Static standalone fields and subfields of initialized data structures are initialized to their RPG default initial values (for example, blanks for character, 0 for numeric).

    Subfields of uninitialized data structures (INZ not specified on the definition specification for the data structure) are initialized to blanks (regardless of their data type).

    ILE RPG - INZ{(initial value)}


    Zitat Zitat von harkne Beitrag anzeigen
    Danke für alle Antworten, aber es hat in diesem Fall ausschließlich mit ALWNULL zu tun.
    Das Programm lief die ganze Zeit fehlerfrei. Unsere NULL-Felder werden immer vor dem Schreiben gesetzt und auch vor dem Update. Es ist auch nie ein Fehler aufgetreten, erst als ich jetzt die externe DS eingefügt habe. Ich habe es auch mit einem clear auf die Datenstruktur zuvor probiert, aber wie ich mir bereits gedacht habe, hat das nichts geändert da wir beim Schreiben eh alle Felder einzeln initialisieren. Das Programm lief ja auch wieder als ich die e ds auskommentiert hatte. So nach dem ALWNULL läuft das Programm auch wieder richtig.

    Vielen Dank für die Hilfe

Similar Threads

  1. Probleme mt OPNQRYF
    By Hawi in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 17-06-15, 09:40
  2. Probleme bei endsbs *all
    By homerun in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 23-12-02, 22:26
  3. Probleme im IFS
    By Der Gute in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 09-04-02, 15:36
  4. Probleme mit AFP
    By Flappes in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-08-01, 16:54
  5. PTF-Probleme
    By Winni in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 30-03-01, 07:29

Berechtigungen

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