【发布时间】:2016-07-21 10:09:45
【问题描述】:
我有一个结构如下的简单数据集:
Server.FieldDefs.Add('Code', ftString, 5);
Server.FieldDefs.Add('Memo', ftMemo, 0);
Server.FieldDefs.Add('Blob', ftBlob, 0);
数据集有一条记录。然后我通过 TClientDataSet 实例中的 TDataSetProvider 获取数据集,更改数据并应用更新。触发TDataSetProvider的BeforeUpdateRecord和AfterUpdateRecord事件。
但是,ftBlob 字段的 OldValue 总是显示 Null,但 ftMemo 和 ftString 字段显示不 Null:
OnBeforeUpdateRecord
Code.OldValue is not null
Code.NewValue is not null
Memo.OldValue is not null
Memo.NewValue is not null
Blob.OldValue is null
Blob.NewValue is not null
OnAfterUpdateRecord
Code.OldValue is not null
Code.NewValue is not null
Memo.OldValue is not null
Memo.NewValue is not null
Blob.OldValue is null
Blob.NewValue is not null
虽然 ftMemo 字段也没有返回正确的结果。 ftMemo 字段的 OldValue 始终为空字符串。
我已将此问题报告给RSP-15519。一个示例项目也可以从那里下载。
只是想知道这是否是迈达斯的设计?或者它是一个错误?
【问题讨论】:
-
在编辑记录之前,表中“Blob”字段的值是多少?我敢打赌它是空的。此外,您应该向我们展示一些 Delphi 代码,而不是您的伪代码。你让我们猜测。
-
看看设置 dspropINCLBLOBSINDELTA 是否可以解决问题
标签: delphi datasnap tclientdataset midas-server