[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2003
    Beiträge
    31

    Verwendung von NULL bzw. NULLIND

    Hallo,

    Ich habe im Handbauch nur die Verwendung von NULL/NULLIND bei Datenbanken gafunden.

    Kann ich NULL auch bei normalen Variablen verwenden? Falls ja, wie?
    bzw. kann ich die Unterscheidung von NULL und 0 z.B. auch bei Display-Files verwenden?

    gruss Alex

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    Zitat Zitat von MrBonZai
    Hallo,

    Ich habe im Handbauch nur die Verwendung von NULL/NULLIND bei Datenbanken gafunden.

    Kann ich NULL auch bei normalen Variablen verwenden? Falls ja, wie?
    bzw. kann ich die Unterscheidung von NULL und 0 z.B. auch bei Display-Files verwenden?

    gruss Alex
    in RPG nein, in ordentlichen Programmiersprachen, wie Java, SQL und co. aber ja.

    Dieter Bender
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Mit etwas Umstand gehts auch bei RPGLE !

    Lege eine Datei mit den benötigten Variablen für die Verwendung als PF an.

    Definiere die Datei in den F-Bestimmungen mit USROPN und codiere den OPEN und einen Zugriff in einer Unterroutine die du nie ansprichst (Compilerbefriedigung).

    Und schon kannst du alle diese Variablen sowie deren %nullind(var) verwenden ohne diese Datei zu öffnen oder E/A's auszuführen.

    @Dieter
    Zugegeben, die bescheuertste Variante eines merkwürdigen Programmierstils, aber wo ein Wille ist ......... gibts auch entsprechende Entwickler.
    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
    Mar 2002
    Beiträge
    5.287
    @Baldur :
    irgendwie habe ich diesen Trick nicht durchschaut, kannst Du mal ein Code Snippet aufschreiben, für die Landbevölkerung?
    In RPG gibt es durchaus das Problem, dass eine Variable null enthält, z.B.: ein Parameter, der bei einem dynamic call nicht übergeben wurde und da könnte ich in Java durchaus abfragen:

    if (irgendEine Variable == null)
    machWas();
    else
    lassEs();

    mfg

    Dieter

    Zitat Zitat von Fuerchau
    Mit etwas Umstand gehts auch bei RPGLE !

    Lege eine Datei mit den benötigten Variablen für die Verwendung als PF an.

    Definiere die Datei in den F-Bestimmungen mit USROPN und codiere den OPEN und einen Zugriff in einer Unterroutine die du nie ansprichst (Compilerbefriedigung).

    Und schon kannst du alle diese Variablen sowie deren %nullind(var) verwenden ohne diese Datei zu öffnen oder E/A's auszuführen.

    @Dieter
    Zugegeben, die bescheuertste Variante eines merkwürdigen Programmierstils, aber wo ein Wille ist ......... gibts auch entsprechende Entwickler.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Allow Null

    @Dieter
    Wenn mit der Funktion %NullInd() gearbeitet werden soll, muss in den H-Bestimmungen ALWNULL(*USRCTL) angegeben werden. Nur dann kann auch mit NULL-Feldern bzw. NULL-Werten gearbeitet werden.

    In DDS-beschriebenen Dateien kann das Schlüsselwort ALWNULL angegeben werden, um ein NULL-fähiges Feld zu definieren. (In SQL sind NULL-Werte sowieso Standard)
    Wird eine Datei, die Felder mit ALWNULL zulässt, in die F-Bestimmungen eingebunden, kann bei diesen Feldern mit NULL gearbeitet werden.

    Die Funktion %NullInd(MyNullFld) ist *ON, wenn in dem Feld NULL-Werte stehen, anderenfalls liefert die Funktion *OFF.

    Code:
    H AlwNull(*UsrCtl)
    FMyNullPF  IF   E             DISK     
     /Free
       If %NullInd(MyNullFld);     //Feld hat NULL-Inhalt
          %NullInd(MyNullFld) = *Off;  //Keine NULL-Werte
       EndIf;
    
          MyNullFld = 'ABC';
     /End-Free
    Um ein Feld mit NULL-Inhalt zu füllen, muss die Funktion auf *On gesetzt werden.
    Code:
     /Free
         %NullInd(MyNullFld) = *On  // Setzen Feld auf NULL
     /End-Free
    Die Anzahl der übergebenen Parameter kann mit der Funktion %Parms() abgefragt werden. In einer Main-Procedure entspricht %Parms() *PARMS aus der Programm-Status-Datenstruktur.

    Parameter, die im Prototyp mit *OMIT definiert wurden, können auf NULL abgefragt werden. Bei Angabe von *OMIT im Aufruf wird ein NULL-Wert übergeben. %Parms() zählt in diesem Fall jedoch die ommitteten Parameter mit.

    Code:
     /Free
         If %Addr(MyParm3) = *NULL   //Parameter übergeben
            MyPtrParm3 = %Addr(MyField);
         Endif;
     /End-Free
    @Fuerchau
    Für Dateien, die in den F-Bestimmungen definiert wurden, sind im Gegensatz zu RPGIII keine Dummy-Aktionen erforderlich.
    Die Felder können direkt angesprochen werden.

    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

  6. #6
    Registriert seit
    Mar 2003
    Beiträge
    31
    Thanx für die Antworten.

    Habe ich das nun richtig verstanden, dass ich in Bildschirmdateien, definitiv keinen NULL-Wert abfragen bzw. zulassen kann?

    ich wollte eine Unterscheidung zwischen Eingabe von "0" und "Nichts" bei numerischen Feldern.
    Über das Schlüsselwort "Change" wollte ich in diesem Fall nicht gehen, da es einen erheblichen Aufwand darstellt, bzgl. Bezugszahlen usw.

    gruss Alex.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Ausser per CHANGE gibt es keine Möglichkeit dies zu realisieren !
    NULL ist SQL-Spezifisch.

    Ausserdem: was habt ihr bei DSPF's denn gegen Bezugszahlen ?
    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. Frage zu WDSC bzw. CODE400
    By Mr.iSeries in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 02-09-08, 10:16
  2. Darstellung der Null im LPEX-Editor (WDSC)
    By Ewald in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 25-01-07, 07:52
  3. GFC 6224-002 bzw. MT50 gesucht
    By GAusthoff in forum NEWSboard Server & Hardware Markt
    Antworten: 0
    Letzter Beitrag: 24-11-06, 14:23
  4. Ihre iSeries bzw. i5 verarbeitet Excel und mehr
    By mk in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 30-10-06, 09:19
  5. NOT NULL WITH DEFAULT
    By deni87991 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 04-08-06, 10:32

Berechtigungen

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