Einzelnen Beitrag anzeigen

shmia

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

Re: ADD COLUMN mit Default-Wert klappt nicht

  Alt 29. Okt 2009, 15:35
Die Datenbank "weiss", dass wenn ein Datensatz eingefügt wird in dem das Feld Geschlecht fehlt,
dass das Feld den Defaultwert "W" erhalten soll.
INSERT INTO Mitarbeiter(Name, Strasse, Ort) VALUES('Merkel', 'Palast der Republik', 'Berlin') Die Frage ist: Weiss das auch die Treiberschicht?
Dazu müsste der Treiber die Defaultklausel abfragen können und diese Information müsste
von den Zugriffskomponenten korrekt verarbeitet werden. (bei vielen Komponenten klappt das leider nicht)
Wenn nämlich im Hintergrund eine INSERT-Anweisung generiert wird, die das Feld Geschlecht enthält:
INSERT INTO Mitarbeiter(Name, Strasse, Ort, Geschlecht) VALUES('Merkel', 'Palast der Republik', 'Berlin', NULL) dann kann die Default-Klausel nicht wirken.

Man kann das Problem umgehen, indem man den Defaultwert im Event AfterInsert setzt:
Delphi-Quellcode:
procedure TForm1.Query1AfterInsert(DataSet: TDataSet);
begin
   Dataset['Geschlecht'] := 'W'; // default
end;
Andreas
  Mit Zitat antworten Zitat