Einzelnen Beitrag anzeigen

Mimm

Registriert seit: 17. Sep 2007
11 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Feld wird mit NULL gefüllt obwohl es nicht soll

  Alt 2. Sep 2008, 11:43
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBX/ BDE
Hallo!

Systemumgebung:

Firebird 1.5 (Version 1.5.2.4731) auf Windows 2003 Server
Die Datenbank wurde von Interbase 5.6 auf Firebird importiert.
Da es ein schon etwas älteres, verteiltes System ist wird auf die Datenbank in einem Programm über die BDE zugegriffen. In dem Programm welches jedoch die Fehlermeldung wirft werde die Interbase Komponenten von Delphi 7 verwendet!

Das bestehende System wurde in einer Tabelle um ein weiteres Feld ergänzt. Oder einfach:
ALTER Tabelle1 ADD foobar TSTR255

Die Damain TSTR255 ist wie folgt in der DB deklariert:

CREATE DOMAIN TSTR255 AS
VARCHAR(255) CHARACTER SET ISO8859_1
DEFAULT ""
NOT NULL
COLLATE ISO8859_1

UPDATE Tabelle1 SET foobar = null

führt folgerichtig zu der Fehlermeldung:

The insert failed because a column definition includes validation constraints.
validation error for column STAPLER, value "*** null ***".

In die Tabelle1 werden Daten mittels
INSERT INTO Tabelle1 (Feld1, Feld2, Feld3) VALUES (1,2,3)
eingefügt. Dieser Aufruf ist in einer Storedprocedure hinterlegt und wird über die BDE aufgerufen. Nach dem Import der Daten hat das Feld foobar den Wert NULL.

Als wenn das nicht schon merkwürdig genüg wäre bekomme ich in ein einem anderen Prgramm bei einem Update auf die Tabelle1
die Fehlermeldung von oben "The insert faild because ..." In den anderen Programmen kommt die Meldung troz Update auf Tabelle1 nicht! Und nein das Feld foobar wird in diesem Programm nicht auf NULL gesetzt

UPDATE Tabelle1 SET Field2 = 1 WHERE Field1 = <irgentwas>

Meine Frage ist warum und wie kann das Feld foobar "plötzlich" Null werden?
Ich habe auch versucht im Import das Feld fix über den INSERT Befehl mit einem Wert zu füllen:
INSERT INTO Tabelle1 (Feld1, Feld2, Feld3, foobar) VALUES (1,2,3, "")
aber auch dies brachte keine Erfolg.

Für eine Idee woran das liegt wäre ich dankbar.

Gruß

Michael M.
  Mit Zitat antworten Zitat