gpt4 book ai didi

Delphi - 如何以流的形式获取 blob 字段的数据集的 OldValue 和 NewValue

转载 作者:行者123 更新时间:2023-12-03 15:30:39 27 4
gpt4 key购买 nike

在 Delphi XE 上我使用 OldValueNewValue来自 TpFIBDataSet(但它可以应用于任何 TDataSet 后代),以便验证不同字段是否已更改。我的问题是如何将 blob 字段的这 2 个值检索为 TMemoryStreams?我做了一些研究,但一无所获。

最佳答案

我使用例程来检测字段是否发生更改,这样我就可以将发送到数据库的字段限制为仅更改的字段。我今天向该例程添加了代码来处理 BLOB 字段,因为它们无法返回 .AsVariant,这就是返回 OldValueNewValue 的方式。我还没有对我的所有用例进行测试,但到目前为止它看起来相当可靠。

function FieldChanged(DataSet: TDataSet; FieldName: string): Boolean;
var
fld: TField;
begin
fld := DataSet.FieldByName(FieldName);

if fld.IsBlob then
Exit((fld as TBlobField).Modified);

if (fld.OldValue = Null) and (fld.NewValue = Unassigned) then // This happens when a NULL field does not change
Exit(False)
else
Exit(fld.OldValue <> fld.NewValue);
end;

关于Delphi - 如何以流的形式获取 blob 字段的数据集的 OldValue 和 NewValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19710472/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com