我有一个具有以下结构的简单数据集:
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。一个示例项目也可以从那里下载。
只是想知道这是否是迈达斯的设计?或者它是一个错误?