在Delphi 10 Seattle中使用Firedac连接到SQLServer

时间:2016-02-22 14:29:59

标签: delphi firedac

我正在使用网格输入数据,并发现我的字段标记为NOT NULL但具有DEFAULT CONSTRAINT,例如。 int = 0不会使用默认值自动更新。

1 个答案:

答案 0 :(得分:0)

来自Delphi XE8 documentation

  

FireDAC不会自动从中获取列默认表达式   数据库字典。

定义默认值的标准Delphi方法是处理 TDataSet.OnNewRecord 事件并在运行时显式设置默认值。

但FireDAC确实提供了另一种解决方案:

  

FireDAC允许您为表达式分配表达式    TField.DefaultExpression 属性。将评估此表达式   一次作为Insert / Append方法调用的一部分并指定为   相应字段的初始值。

这可以在设计时使用字段编辑器完成。

我更喜欢前一种解决方案,但这是因为我的数据集通常是在运行时通过动态SQL定义的...所以后者不是一种选择。