AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Wie mit Feldern vergleichen, die (NULL) sind
Thema durchsuchen
Ansicht
Themen-Optionen

Wie mit Feldern vergleichen, die (NULL) sind

Ein Thema von LeisureSuitLarry · begonnen am 13. Mai 2015 · letzter Beitrag vom 15. Mai 2015
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: Wie mit Feldern vergleichen, die (NULL) sind

  Alt 14. Mai 2015, 10:11
Im Beispiel von p80286 sieht man, wie komplex die Arbeit mit NULL Werten werden kann. Daher sollte man davon Abstand nehmen, bzw. dreimal überlegen, ob NULL als abzufragendes Datum wirklich notwendig ist.
Das verstehe ich jetzt nicht: Wie sollte man dann ohne den Test auf Null herausfinden, ob ein Feld einen Eintrag enthält? Jetzt erzählst du mir sicher gleich, das käme in der Praxis nicht vor, oder?
Falsch, denn Du hast maximal 1x nachgedacht . Wenn man in seiner Logik die Abfrage auf NULL benötigt, sollte man hinterfragen, was man damit eigentlich beabsichtigt und dies dann ggf anders formulieren.
Du meintest wohl eher: mindestens 1x nachgedacht. Das kann ich so nicht bestätigen, denn Nachdenken ist danach denken. Wenn ich eine Abfrage aller Records, deren Feld Adresse Null ist, benötige, muß ich nicht nachdenken, sondern lediglich Erfahrungswissen abrufen. So schnell kann ich gar nicht denken, wie dieses Wissen verfügbar ist. Das geht quasi automatisch und hat nichts mit Nachdenken zu tun. Nachdenken muß ich erst, wenn ich beim Coden stocke, weil ich erst überlegen – oder eben nachdenken – muß, wie ich das jetzt anstelle.

Ich hab z.B. eine Tabelle, da kriegt der Kunde regelmäßig neue Adressen rein, die sind unvollständig, mal fehlt die Straße, mal die Telefonnummer, mal die Postleitzahl usw. Um das zu ergänzen, kann er sich alle Kunden-Records anzeigen lassen, bei denen die Telefon-Nr. Null ist. Wo soll da ein Problem sein? Die Alternativen wären entweder im Grid alle Kunden-Datensätze durchzublättern, um optisch zu überprüfen, ob da irgendwo was fehlt – nicht sehr komfortabel. Oder die Datensätze zu sortieren und nach ganz oben oder ganz unten zu springen, um die Null-Einträge zu sehen – ein wenig komfortabler, aber nicht optimal.

Speziell bei parametrierten Abfragen wird das dann zu einer sehr unübersichtlichen Angelegenheit:
Wieso geht's jetzt plötzlich um parametrierte Abfragen? Doch nicht um deine Behauptung zu untermauern, oder? Ich finde, in der Pauschalität, in der du häufig argumentierst, übersiehst du meist, daß es noch viel mehr gibt, als auf deinen Teller paßt.

Bei einer Abfrage auf 'Daten vorhanden/nicht vorhanden' ist das natürlich vollkommen ok, aber wenn die Spalte in Reportfiltern vorkommt, ist das dann wieder blöd, wg. (siehe oben)
Wieso geht's jetzt plötzlich um Reportfilter?

Wenn man einen Report benötigt, der auch alle z.B. unausgefüllten TelefonNr-Spalten zeigt, dann lieber explizit als separaten Report oder man deklariert die Telefon-Spalte als NOT NULL und dann hat der leere String die Bedeutung: 'unausgefüllt'.
Darum geht's doch aber gar nicht ...

Aber klar: Manchmal geht es nicht anders und dann ist man auch wieder froh über NULL (LEFT JOIN z.B.)
Und auch darum geht's in diesem Thread nicht.

Hat wenigstens der Kaffee geschmeckt?
  Mit Zitat antworten Zitat
LeisureSuitLarry

Registriert seit: 8. Dez 2005
Ort: Unterschleißheim
90 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Wie mit Feldern vergleichen, die (NULL) sind

  Alt 15. Mai 2015, 09:17
Danke für Eure Hilfe!

is NULL ist die Lösung.
Manfred
Mein erster Rechner hatte eine Z80A-CPU mit 4MHz, 64KB Speicher, Musikkassetten als Speichermedium. Als Betriebssystem CP/M (dazu gekauft)
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Wie mit Feldern vergleichen, die (NULL) sind

  Alt 15. Mai 2015, 09:21
[...] is NULL ist die Lösung.
Na, das ist ja eine Überraschung... http://www.delphipraxis.net/1301406-post3.html
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.202 Beiträge
 
Delphi 12 Athens
 
#4

AW: Wie mit Feldern vergleichen, die (NULL) sind

  Alt 15. Mai 2015, 09:35
Joar, x IS NULL , x IS NOT NULL oder NOT (x IS NULL) schon vor langer Zeit genannt wurden,
in manchen DBMS auch die Abkürzungen x ISNULL oder x NOTNULL
und im Delphi-Code x.IsNull oder not x.IsNull .
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Mai 2015 um 09:38 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz