Delphi中,如何将Blob字段数据集的OldValue和NewValue转为流,形成长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计270个文字,预计阅读时间需要2分钟。
在Delphi XE中,我使用TpFIBDataSet的OldValue和NewValue属性(但它们可以应用于任何TDataSet后代)来验证是否有不同的字段值已更改。我的问题是,如何将这两个blob字段的值搜索到TMemoryStreams中?
在Delphi XE上,我使用来自TpFIBDataSet的 OldValue和 NewValue(但它可以应用于任何TDataSet后代),以验证是否有不同的字段已更改.我的问题是如何将这两个blob字段的值检索为TMemoryStreams?我做了一些研究,但我一无所获. 我使用例程来检测字段是否已更改,因此我可以将发送到数据库的字段限制为仅更改的字段.我今天为该例程添加了代码以处理BLOB字段,因为它们无法返回.AsVariant,这是返回OldValue和NewValue的方式.我没有用我的所有用例测试过这个,但到目前为止它似乎非常可靠.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;
本文共计270个文字,预计阅读时间需要2分钟。
在Delphi XE中,我使用TpFIBDataSet的OldValue和NewValue属性(但它们可以应用于任何TDataSet后代)来验证是否有不同的字段值已更改。我的问题是,如何将这两个blob字段的值搜索到TMemoryStreams中?
在Delphi XE上,我使用来自TpFIBDataSet的 OldValue和 NewValue(但它可以应用于任何TDataSet后代),以验证是否有不同的字段已更改.我的问题是如何将这两个blob字段的值检索为TMemoryStreams?我做了一些研究,但我一无所获. 我使用例程来检测字段是否已更改,因此我可以将发送到数据库的字段限制为仅更改的字段.我今天为该例程添加了代码以处理BLOB字段,因为它们无法返回.AsVariant,这是返回OldValue和NewValue的方式.我没有用我的所有用例测试过这个,但到目前为止它似乎非常可靠.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;

