![]() |
Datenbank: Firebird embedded • Version: 1.5 • Zugriff über: IBX-Komponenten
Required-Property eines Fields in TClientDataSet ändern
Ich ermittle aus zwei Tabellen über einen Join eine Datenmenge und weise diese einem ClientDataSet zu.
In einer Tabelle existiert ein Feld mit der Eigenschaft NOT NULL. Im ClientdataSet wird jetzt logischerweise die Property Required des entsprechenden Felds auf True gesetzt. Nun zum Problem: In der Datenbank steht in dem Feld ein Leerstring, also eigentlich <> NULL. Wenn ich im ClientDataSet nun irgendeinen Wert ändere und ein Post aufrufe, so erhalte ich eine Fehlermeldung "Field value required". Auch klar, weil ich für das NOT NULL-Feld einen Wert brauche. Nun dachte ich, ich kann nachträglich die Eigenschaft Required des Feldes auf False setzen, aber irgendwie wird die Änderung nicht beachtet, d.h. ich erhalte auch nach dem setzen der Property Required := False noch den Fehler. Frage: Warum wird ein Leerstring im Dataset als NULL interpretiert? .. und noch wichtiger: Wie kann ich die Required-Eigenschaft setzen? Merci, Hans. |
Re: Required-Property eines Fields in TClientDataSet ändern
Ich habe nochmals nachgedacht:
Ich denke es ist doch so, dass ich die Required-Property des ClientDataSets gar nicht ändern darf, solange dieses mit dem DataSetProvider verknüpft ist. Würde hier die Struktur der Daten geändert, so kommt es evtl. beim Zurückschreiben der Daten zu Konsistenzproblemen. Meine Vorgehensweise war jetzt, die Struktur das Source-DataSets im ClientDataSet zu übernehmen und die Daten manuell umzuschaufeln. Bei der Erstellung der Struktur bin ich so vorgegangen, dass alle Felder Required := False gesetzt wurden. Da ich die Daten nicht mehr in die DB zurückschreibe, reicht mit die Lösung aus. Würde mich nur noch interessieren, ob ich mit meinen Gedanken richtig bin, oder ganz daneben liege. Hans. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz