AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MS-Access 2016: VARCHAR mit Inhalt "" oder NULL
Thema durchsuchen
Ansicht
Themen-Optionen

MS-Access 2016: VARCHAR mit Inhalt "" oder NULL

Ein Thema von berens · begonnen am 22. Mai 2020 · letzter Beitrag vom 27. Mai 2020
 
berens

Registriert seit: 3. Sep 2004
441 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: MS-Access 2016: VARCHAR mit Inhalt "" oder NULL

  Alt 22. Mai 2020, 18:07
Danke, @stifflersmom, das liefert [auch?] die Zeilen zurück, die NULL sind. Die Beschreibung auf der verlinkten Website ist schlüssig.
Code:
SELECT *
FROM Tabelle1
WHERE Nz(Myfield,'') ="";
Leider kann ich mit Access gerade keinen Eintrag erzeugen, der nur leeren Text drinnen hat, aber kein Null, aber ich hoffe einfach mal, wenn das NZ von vielen Leuten verwendet wird, dass es da auch zuverlässig arbeitet . Danke soweit.

@himitsu
> In dem Bild steht bei Default/Standardwert was von "".
Ja, das hat mich auch gewundert. Natürlich steht in meinem Quelltext:
q.SQL.Add('ALTER TABLE Tabelle1 ADD Myfield VARCHAR(255) DEFAULT "";'); Aber dass der das soooo wörtlich nimmt...
Es kann natürlich auch sein, dass die Zeilen bei/nach der Anpassung der Tabelle einmalig einen "leeren String" haben (z.B. \#0 oder wie auch immer das Zeichen dafür ist), und beim Abspeichern durch mein Programm, wenn der Wert "" dann über eine interne Routine den o.g. \#0 bekommen oder so.

> Wenn es nie NULL sein soll, wieso aktivierst du das dann nicht?
Eine fachlich richtige Antwort kann ich die hierfür nicht geben, dafür weiß ich, das Du ein x-Mal besserer Programmierer bist als ich; hast mir ja schon oft genug geholfen. Es gibt hier nur die "ehrliche" Antwort: aus Faulheit UND Unwissenheit. Long story short, bevor ich hier zu weit abdrifte: Ich habe mehrere Module die Einträge in dieser "Tabelle1" anlegen können. Diese sind nicht miteinander verkoppelt - was auch so bleiben soll(te). Wenn Modul1 -was den Wert "MyField" nicht kennt- nun eine Zeile schreibt, und NULL nicht mehr zugelassen ist, gibt es -denke ich mal- beim Post 'ne Exception. Modul1 kennt aber das Feld nicht. Ich müsste alle Module anpassen um (zusätzlich) ein Feld zu initialisieren, was in diesen Modulen 0% Relevanz hat. Mir als Mensch ist das echt sowas von egal ob da NULL oder "" drin steht, nur die Abfrage muss mir zuverlässig zurückgeben "ob da in dem Feld menschenlesbare Zeichen drinen sind, oder nicht". Hier ist die angepasste Abfrage von @stifflersmom einfacher an 7-8 Stellen einzupflegen, als in jedem Modul -imo "unnötigerweise"- das Feld "MyField" jedes Mal mit abspeichern zu lassen, NUR damit es keine Exception gibt. Natürlich wäre dein vorgeschlagenes Verfahren das Richtige - ToDo-Liste und Terminierungen sagen aber: geht nicht, nicht die "einfache" Lösung. Nicht professionell, aber ich kann mich leider nicht verreißen... Und ja: da muss von Grund auf eine andere Struktur rein. Stichwort: Historisch gewachsen.

Ich hoffe, dass die NZ Funktion alles perfekt abdeckt, ich denke, damit komme ich für den Moment ausreichend weiter.
Vielen Dank allen Antwortern , Thema beendet.
Delphi 10.4 32-Bit auf Windows 10 Pro 64-Bit, ehem. Delphi 2010 32-Bit auf Windows 10 Pro 64-Bit
  Mit Zitat antworten Zitat
 

 

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 13:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz