-
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.
-
"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.
-
... 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
-
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!
-
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.
Similar Threads
-
By msost in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 08-09-16, 17:36
-
By edv90020 in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 20-05-10, 06:44
-
By morula in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 13-06-08, 20:16
-
By Willi1 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 03-05-02, 08:38
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks