Default-Wert in TADOQuery für ein Feld, das nicht NULL sein darf



  • Hi,

    ich hab in meiner Datenbank ein Feld, das nicht NULL sein darf. Außerdem hat dieses Feld einen Defaultwert. Wenn ich also per INSERT-Query einen Datensatz einfüge und dieses Feld nicht angebe, wird der Default-Wert eingetragen.
    Jetzt habe ich über mein TADOQuery per "SELECT *" einen Datensatz aus der Datenbank gelesen, dem ich nun einen neuen hinzufügen möchte:

    ADOQuery->Append();
    ADOQuery->CopyFields(ADOQuerySource);
    ADOQuery->FieldByName("FeldName")->Clear();
    

    Da in der dem Quelldatensatz das Feld vorhanden ist, will ich es löschen, damit der Default-Wert zugewiesen wird. Das lässt das ADOQuery aber nicht zu, da das Feld nicht NULL enthalten darf.
    Und wie komm ich aus dem Dilemma nun raus?



  • Hallo heimchen,

    wenn ich das richtig verstanden habe, steht in der DB in dem Feld ja mindestens der "Default-Wert". Du könntest doch diesen dann an Stelle von "Nichts" mit übergeben?!

    Gruß
    Torsten



  • Aber wenn ich den Default-Wert in der Datenbank ändere, müsste ich ihn auch in den Sourcen ändern. Und das wäre sehr lästig...
    Genauso mach ich es ja im Moment 😉


Anmelden zum Antworten