我正在设置一个基于ADO的客户端数据集,当我尝试将空值插入TIntegerField时,在Post上我得到Project raised exception class EDatabaseError with message 'Non-nullable column cannot be updated to Null'.
我知道我之前已经看到过将TField设置为可空的方法,但我不记得在哪里或如何。有谁知道如何解决这个问题?
编辑:该字段在设计时设置为Required = false,我已经验证它在运行时仍然是假的,但我仍然得到错误。
答案 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属性,而不管它自己的只读设置。同样的问题可能适用于所需的财产。