ADOQuery - DataSetProvider - ClientDataSet 更新数据
插入可以,但始终无法更新,不知为何,请各位帮忙。
客户端DB控件中含有DBEdit、DBLookupComboBox等控件。
我执行:i:=ClientDataSet1.ApplyUpdates(0)发现i=1
后跟踪应用层DataSetProvider 过程OnUpdateError - E.Message:为“Record not found or changed by another user”。
真的弄不明白了,请各位帮忙,分不够可以加。
插入可以,但始终无法更新,不知为何,请各位帮忙。
客户端DB控件中含有DBEdit、DBLookupComboBox等控件。
我执行:i:=ClientDataSet1.ApplyUpdates(0)发现i=1
后跟踪应用层DataSetProvider 过程OnUpdateError - E.Message:为“Record not found or changed by another user”。
真的弄不明白了,请各位帮忙,分不够可以加。
field1=oldvalue and field2=oldvalue field3=oldvalue........
oldvalue是修改前值.
如果你的所有字段当中有的字段是Mome(或类似的类型)那可能会找不到要更新的数据而出这个错误,你可以控制只根据主键更新:
1 将TDataSetProvider 的UpdateMode设为:upWhereKeyOnly
2 在TDataSetProvider的BeforeApplyUpdates事件中写下:
ADOQuery.FieldByName(主键字段).ProviderFlags:=
ADOQuery.FieldByName(主键字段).ProviderFlags+[pfInkey];