[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Natürlich kann man in RPG auch mit NULL-fähigen Feldern arbeiten selbst mit Native I/O (etwas anderes habe ich auch nie behauptet), es ist nur aufwändiger.
    NULL-Werte sind Werte außerhalb des gültigen Bereichs, also wenn ich alle Werte zwischen *LOVAL und *HIVAL selektiere, werden die Datensätze, die NULL-Werte enthalten nicht ausgewählt, also ist eine zusätzliche Prüfung erforderlich.
    Werden NULL-Werte aus einem SQL-Statement heraus zurückgegeben, muss ich ich RPG entweder mit Indikator-Variablen arbeiten, und jede Indikator-Variable prüfen (bei NULL-Werten werden i.Ü. die Host-Variablen nicht intialisiert!) oder ich muss jede einzelne Spalte, die einen NULL-Wert enthalten könnte, mit COALESCE so verändern, dass ein NULL-Wert in einen Default-Wert konvertiert wird.
    Da NULL-Werte extra geprüft werden müssen, ist das auch ein zusätzlicher Aufwand, die (wenn auch nur im Nano-Sekunden-Bereich) die Performance beeinträchtigen kann.
    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    "bei NULL-Werten werden i.Ü. die Host-Variablen nicht intialisiert!"
    Das ist definitiv falsch, dies gilt nur für Date/Timestamp-Variablen.
    Denn die Evals der Einzelfelder werden beim Fetch alle ausgeführt, schau dir den generierten Code an!
    Nur bei den o.a. Typen gibts halt kein Loval-Ergebnis, da das bei bestimmten DateTime-Formaten (2-stelliges Jahr) nicht definiert ist und zu RPG-Laufzeitfehlern führt.
    Wie i.Ü. auch beim 1.1.0001 und 2-stelligem Jahr Zielfeldern.
    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
    Mar 2002
    Beiträge
    5.365
    ... Null Werte sind unverzichtbarer Bestandteil des Datenbankdesigns. Sie werden benötigt für die meisten referential constraints (z. B.: ein Abverkauf muss einen Kunden haben oder das KundenFeld muss null enthalten) ohne null values verzichten man auf die constraint, was zu inkonsistenten Daten führt oder man legt unsinnige default Referenzen an (z. B: Kundennummer für Barverkäufe), was dann wieder in Gruppierungen Unfug anrichtet, der dann mit Programmieraufwand abgefangen werden muss.
    Fassungslos bin ich, wenn man die wichtigen Features von SQL schlechtredet und gleichzeitig SQL für allen möglichen Quatsch empfiehlt, für den es nicht gedacht ist.

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

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Liebe Leute! Es ging hier (soweit ich das sehen konnte) lediglich um eine Arbeitsdatei!
    Alles andere ob NULL-Werte notwendig sind oder nicht ist hier völlig am Thema vorbei!
    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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Alles was nicht QTEMP ausweist, ist für mich keine Arbeitsdatei;-).
    Und von Arbeitsdatei sehe ich in der Eingangsfrage nicht, den Begriff hast du als erstes in einer Antwort erwähnt. Also dürfen wir auch über NULL schwafeln.
    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. UDF mit create Table läuft nicht in Batch
    By msost in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 08-09-16, 17:36
  2. CREATE TABLE: Table-Name länger als 10 Stellen
    By edv90020 in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 20-05-10, 06:44
  3. CREATE TABLE mit DEFAULT Wert aus Funktion
    By morula in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 13-06-08, 20:16
  4. CREATE TABLE
    By Willi1 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 03-05-02, 08:38
  5. DATFMT bei CREATE TABLE
    By lorenzen in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 21-03-01, 13:44

Berechtigungen

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