Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Interbase und Felder die NICHT null sein dürfen

  Alt 21. Jun 2004, 12:22
Zitat von Albi:
Gib es denn eine Möglichkeit, eine Excepion der DB an den Client zu senden?
Üblicherweise werden Fehlermeldungen vom Datenbanktreiber auf der untersten Ebene über Returncodes zurückgegeben.
Die Kapselung, die die VCL um die Treiber legt, übersetzt diese Returncode in Exceptions.
Du als Anwender der Datenbank-Komponenten brauchst dich darum eigentlich gar nicht zu kümmern.
(Es sei denn, die Komponenten arbeiten nicht "Delphi-like")

Zitat von Albi:
Ich habe in meiner DB das Feld PlzOrtID, wenn ich direkt auf der DB arbeite und die Felder einfüge und das Feld PlzOrtID keinen Wert enthält bekomme ich ne Meldung. Wenn ich jedoch die Felder aus dem Client heraus ausfülle und ich lasse dort die Eingabe für die PlzOrtID weg, dann wird in der DB das Feld Feld einfach "NULL" eingetragen und das sollte doch eigentlich nicht sein.
Das darf eigentlich überhaupt nicht passieren !!
Zum Test, dass du keinem Irrtum unterliegt probiere Folgendes:
Erzeuge mit deiner Anwendung einen Datensatz, der im Feld PlzOrtID den NULL-Wert enthält.
Gehe direkt auf die Datenbank (mit IBconsole, oder ?) und ändere ein anderes Feld (z.B. Ortsname)
und bestätige die Änderungen. Nun sollte die Fehlermeldung betreffend PlzOrtID kommen.
Ein Stringfeld kann einen leeren String enthalten oder es kann den Inhalt 'Null' enthalten,
das ist aber nicht das gleiche wie der echte NULL-Wert.
Also versuche auch mal mit IBConsole den Inhalt "NULL" zu editieren, sollte das gelingen, handelt
es sich einfach um einen String, der zufällig den Inhalt "NULL", aber nicht um den echten NULL-Wert.

Versuche auf jeden Fall die neuesten Treiber sowie evtl. ein Update für IB aus dem Internet zu ziehen.
Andreas
  Mit Zitat antworten Zitat