为什么用DELTA更新数据库时,会将其它行也更新;
例如:tbl_user
其中字段:USerID,USERName 为唯一索引主键
USERID USERNAME ADDR MEMO TEL EMAIL
z1      ZN1     A1  M1    136 [email protected]
z2      ZN2     A1  M1    136 [email protected]
z3      ZN3     A1  M1    136 [email protected]当本人输入以上三条数据后,作ApplyUpdates(cds.delta,0,MaxErrCount);
Mergechangelog;
提交成功,数据库有这三条数据;
接着直接修改第一条的ADDR 为‘AX’,POST后作ApplyUpdates(cds.delta,0,MaxErrCount);
Mergechangelog;结果就不对了,发现以上三条的ADDR均被修改为‘AX’了;
USERID USERNAME ADDR MEMO TEL EMAIL
z1      ZN1     AX  M1    136 [email protected]
z2      ZN2     AX  M1    136 [email protected]
z3      ZN3     AX  M1    136 [email protected]其实正确结果应为:
USERID USERNAME ADDR MEMO TEL EMAIL
z1      ZN1     AX  M1    136 [email protected]
z2      ZN2     A1  M1    136 [email protected]
z3      ZN3     A1  M1    136 [email protected]
为什么这样呢?本人的APPSERVER 是用:Dsprodvider+qry+ADOconnect
DB:oracle9i;
DSprovider 设置:Updatemode=upWhereChanged;
options:=[poAllowMultiRecordUpdates,poAutoRefresh,poAllowCommandText];