如何将Field声明为可空?

时间:2009-08-06 20:50:25

标签: delphi null tdataset

我正在设置一个基于ADO的客户端数据集,当我尝试将空值插入TIntegerField时,在Post上我得到Project raised exception class EDatabaseError with message 'Non-nullable column cannot be updated to Null'.

我知道我之前已经看到过将TField设置为可空的方法,但我不记得在哪里或如何。有谁知道如何解决这个问题?

编辑:该字段在设计时设置为Required = false,我已经验证它在运行时仍然是假的,但我仍然得到错误。

4 个答案:

答案 0 :(得分:4)

您是否验证了此字段所代表的db字段 有一个非空约束?

答案 1 :(得分:1)

MyField.Required := False;

答案 2 :(得分:0)

从帮助到Delphi 5:

property Required: Boolean;

但要注意:

property CustomConstraint: String;

从TDataSet继承的类的一些实现也可以自己添加一些逻辑......

答案 3 :(得分:0)

我不知道这是否会有所帮助,但听起来很熟悉。检查提供cds的ado数据集字段的属性。我知道在d7中,cds内部采用提供者数据集的readonly属性,而不管它自己的只读设置。同样的问题可能适用于所需的财产。