我正在使用网格输入数据,并发现我的字段标记为NOT NULL但具有DEFAULT CONSTRAINT,例如。 int = 0不会使用默认值自动更新。
答案 0 :(得分:0)
FireDAC不会自动从中获取列默认表达式 数据库字典。
定义默认值的标准Delphi方法是处理 TDataSet.OnNewRecord 事件并在运行时显式设置默认值。
但FireDAC确实提供了另一种解决方案:
FireDAC允许您为表达式分配表达式 TField.DefaultExpression 属性。将评估此表达式 一次作为Insert / Append方法调用的一部分并指定为 相应字段的初始值。
这可以在设计时使用字段编辑器完成。
我更喜欢前一种解决方案,但这是因为我的数据集通常是在运行时通过动态SQL定义的...所以后者不是一种选择。