【问题标题】:NULL's missing while move from Anydac to Firedac从 Anydac 移动到 Firedac 时 NULL 丢失
【发布时间】:2013-12-16 15:08:43
【问题描述】:

我正在将代码从 Delphi 2007 + AnyDac 移动到 Delphi XE4 + FireDac。在AnyDac 的情况下,所有空字符串都像NULL 一样存储,而在FireDac 中,所有空字符串都像空字符串'' 一样存储。

我需要回到NULL。最好的方法是什么?我使用参数存储到数据库:

ADQuery.Params.ParamByName('Code').Value :=Code;

【问题讨论】:

  • 你说“存储”,但这是由数据库控制的。你的数据库是什么?
  • @Marcus,主要是由数据集控件本身(见下面的帖子)......然后它取决于数据库如何存储。
  • @TLama,如果您假设访问数据库的唯一点是您的数据集控件。如果 OP 回答了我的问题,还有更完整答案的空间。

标签: delphi firedac anydac


【解决方案1】:

在您的数据集对象的FormatOptions 中包含(在对象检查器中将其设置为 True)StrsEmpty2Null 选项。参考文献说(我强调):

控制零长度字符串值到 NULL 值的转换。使用 StrsEmpty2Null 属性来控制是否 FireDAC 应该将长度为零的字符串值转换为 NULL 值(真)或 不是(错误)。 默认值为 False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多