在服务器的ProviderBeforeUpdateRecord 事件中怎样知道哪些字段改变了,哪些没有改变(100分)

  • 主题发起人 主题发起人 yifawu1
  • 开始时间 开始时间
Y

yifawu1

Unregistered / Unconfirmed
GUEST, unregistred user!
因为自动更新总是出错,我想在 ProviderBeforeUpdateReocord 事件中截获更新,
并手动生成 SQL 语句,可是没有更新的数据在 DeltaDS.Field[].newValue中是
无法访问的.怎样判断哪些字段没有更新?
 
只能比较DeltaDS记录与SourceDS中相应记录间的区别了。
 
同意 qiu_peking
 
不知道是否可以先判断DeltaDS.Field[]的状态,如:UMODIFIED,MODIFIED,INSERTED,DELETED等,
若可以,就把UNMODIFIED的RECORD屏蔽,我想就可以了。
 
如何判断及屏蔽,可以采用 DeltaDS.updaterecordtype 来进行。
 
Delta数据包是一个OleVariant格式,没有更新的字段的NewValue是NUll,更新类型在
UpdateKind中
 
判断DeltaDS.Fields的ProviderFlags属性[pfInUpdate,pfInWhere,pfInKey,pfInHidden]
当值为pfInUpdate时说明已被更新。
 
多人接受答案了。
 
后退
顶部