Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Not Null ist leer? (https://www.delphipraxis.net/153-not-null-ist-leer.html)

Rüdiger 14. Jun 2002 20:38


Not Null ist leer?
 
Moin ))

Ich habe ein Feld in der Interbase Tabelle

name varchar 30 not null

warum werden in der Tabelle auch Datensätze erzeugt ohne name (feld Name ist leer)?

wie kann ich das vermeiden?

Rüdiger

MrSpock 14. Jun 2002 20:50

Hallo Rüdiger,

NOT NULL bedeutet ja nur, dass das Feld nicht leer sein darf. Ein String aus Leerzeichen (blanks) ist aber ein gültiget Wert. Du musst hier mir Check Constraints arbeiten:

Code:
CREATE TABLE
....
CHECK (TRIM(name) <> ''))

Rüdiger 14. Jun 2002 21:00

@MrSpock: wie geht das genu?

Rüdiger

MrSpock 14. Jun 2002 21:51

Hallo Rüdiger,

du kannst bei dem Script, mit dem du die Tabelle erstellt die CHECK Abfrage einfach der Felddefinition hinzufügen:

Code:
CREATE TABLE Adresse(
name varchar(30) not null CHECK(Name<>''),
strasse varchar(30))

Rüdiger 14. Jun 2002 23:38

Hallo MrSpock,

das geht nicht. In der Tabelle sind schon mehrere Datensätze vorhanden.

Warum benutzt man überhaupt not null, wenn CHECK reichen würde?

Ich verstehe das nicht.

Rüdiger

MrSpock 15. Jun 2002 09:04

Hallo Rüdiger,

in dem Fall benutzt du ALTER TABLE wie folgt:

Code:
ALTER TABLE TestTab
ADD CONSTRAINT NameCheck CHECK(Name<>'')
NOT NULL und CHECK haben unteschiedliche Bedeutungen. Wenn du z.B. ein Zahlenfeld hast wird es noch deutlicher. Da kann man mit CHECK ein NOT NULL nicht nachbilden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 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