W wlmmlw Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-22 #1 为什么在TClientDataSet的ReconcileError事件里将Action赋值为raCorrect总不能正确执行?
W wind_cloudy Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-22 #2 你必须自己用代码先对数据进行更正,再将Action赋值为raCorrect将数据更新回 数据库。如果不进行处理,直接将Action赋值为raCorrect试图将数据更新回数据 库,当然将再次触发错误.
W wlmmlw Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-22 #3 Delphi自带一个更正错误的窗口,我是在OnReconcileError中调用该窗口来进行更正操作的, 不知这样可不可行?
W wind_cloudy Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-22 #4 用reconcile error对话框也一样。 例如,你修改一条记录的主键值为另一个数,但该数为另一条记录的主键,这时将产生 主键冲突,在reconcile error对话框中你可以看见修改后的值和原来的值,这时你可以 采取的行动为:skip,cancel,correct.如果你选择correct,你必须将modified value修改 为另一个不产生冲突的值.如果直接点击ok,当然不行.
用reconcile error对话框也一样。 例如,你修改一条记录的主键值为另一个数,但该数为另一条记录的主键,这时将产生 主键冲突,在reconcile error对话框中你可以看见修改后的值和原来的值,这时你可以 采取的行动为:skip,cancel,correct.如果你选择correct,你必须将modified value修改 为另一个不产生冲突的值.如果直接点击ok,当然不行.
W wlmmlw Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-23 #5 一个服务器,两个客户端程序在运行: 1.客户端程序A取得记录原始值3; 2.客户端程序B取得记录原始值3; 3.客户端A将记录值改为10,并作保存成功; 4.客户端B将记录值改为5,进行保存操作。 很明显,到了第4步的时候就会提示出错,因为服务器端无法定位记录值为3的记录, 请详细说明此时该如何处理?谢谢!
一个服务器,两个客户端程序在运行: 1.客户端程序A取得记录原始值3; 2.客户端程序B取得记录原始值3; 3.客户端A将记录值改为10,并作保存成功; 4.客户端B将记录值改为5,进行保存操作。 很明显,到了第4步的时候就会提示出错,因为服务器端无法定位记录值为3的记录, 请详细说明此时该如何处理?谢谢!
W wlmmlw Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-30 #6 如果有哪位高手愿详细的接解释并给一个例子将会有300分的回报。 请多指教。
张 张鸿林 Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-02 #8 如果你不想理会记录已被别人修改 TdatasetProvider.UpdateMode:=UpdateWhereKeyOnly 可以避免一些reconcile error,除非key也被改变了
W wlmmlw Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-03 #9 我不是想避免,我是说两个人先取出同一个东西,第一人改了东西,存了盘, 后一个改了东西,我也想后一个人也能存盘。 请帮助出主意,谢谢!!!!
张 张鸿林 Unregistered / Unconfirmed GUEST, unregistred user! 2001-11-12 #10 还不理解吗? TdatasetProvider.UpdateMode:=UpdateWhereKeyOnly 就行了
S sumingfei Unregistered / Unconfirmed GUEST, unregistred user! 2002-01-23 #11 當然可以,樓上的講了,UpdateMode := upWhereKeyOnly 例如: 有兩個人修改客戶資料,假設以編號為主關鍵字,一般不會修改主關鍵字﹔ (如果有參照完整性約束,也可以不允許修改已被引用的客戶編號 而更新定位時則以主關鍵字定位,這樣就不會出現找不到的情況了。 update Customers set ...where ID=1
當然可以,樓上的講了,UpdateMode := upWhereKeyOnly 例如: 有兩個人修改客戶資料,假設以編號為主關鍵字,一般不會修改主關鍵字﹔ (如果有參照完整性約束,也可以不允許修改已被引用的客戶編號 而更新定位時則以主關鍵字定位,這樣就不會出現找不到的情況了。 update Customers set ...where ID=1