Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi constraint-programmierung mit trigger (https://www.delphipraxis.net/63048-constraint-programmierung-mit-trigger.html)

sancho1980 13. Feb 2006 12:19

Datenbank: interbase 6.5 • Version: 6.5 • Zugriff über: ibx, ibexpert

constraint-programmierung mit trigger
 
Hallo Ihr
ich will in meine datenbankdefinition ein paar constraints aufnehmen, von denen ich irgendwie nicht weiß, wie ich das syntaktisch in sql ausdrücken muss. weiß da jemand weiter? das problem ist folgendes:

-ein record besteht aus mehreren feldern
-sobald feld x <> null, dürfen nur noch felder y und z belegt sein. alle anderen felder müssen null sein.
..aus einem früheren thread (http://www.delphipraxis.net/internal...040ef61bf13625) weiß ich schon mal die hälfte, nämlich:

IF (NEW.x IS NOT NULL) THEN
begin
NEW.a = NULL;
NEW.b = NULL;
...
usw.
end

da ich aber eine ganze menge felder habe, und sich da leicht der fehlerteufel einschleicht, wollte ich wissen, ob das nicht irgendwie eleganter geht, nach dem motto:

IF (NEW.x IS NOT NULL) THEN
begin
NEW.y = NEW.Y;
NEW.z = NEW.z;
NEW.alleAnderenFelder = null
end

oder (das wäre mir noch lieber):

IF (NEW.x IS NOT NULL) THEN
begin
NEW.y = NEW.Y;
NEW.z = NEW.z;
if NEW.irgendeinAnderesFeld <> null then
ungültigerDatensatzException
end

Ich weiß, eigentlich solltem man sich für sowas ein Buch nehmen und sich belesen, da ich aber nur diese eine Tabellendefinition hinkriegen muss, lohnt es sich einfach mal nicht für mich, mir extra ein Buch speziell zu SQL zu kaufen und die ganze Literatur, die ich bisher im Netz oder als Beiwerk zu meinem Buch über Datenbankprogrammierung gefunden habe, enthält nur so Zeugs wie 'select'-statements...mich würd also auch mal interessieren, ob ihr im netz irgend ne quelle kennt, die beschreibt, wie man so prozeduren in sql syntaktisch verfasst.

grüße und danke,

martin


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