應用 ApplyUpdate 出錯﹐請各位大蝦救命﹗(100分)

  • 主题发起人 主题发起人 hingman
  • 开始时间 开始时间
H

hingman

Unregistered / Unconfirmed
GUEST, unregistred user!
以下寫法,運行到Table_QUOTED.ApplyUpdates時出以下Error:
'Couldn't perform the edit because another user changed the record.'

片斷如下﹕
if Database1.InTransaction then Database1.Rollback;
Database1.StartTransaction;
try
Table_COM.ApplyUpdates;
Table_QUOTEH.ApplyUpdates;
Table_COA.ApplyUpdates;
Table_COI.ApplyUpdates;
Table_COJ.ApplyUpdates;
Table_QUOTED.ApplyUpdates; “此句出錯”
Database1.Commit;
except
Database1.Rollback;
raise;
end;
Table_COM.CommitUpdates;
Table_QUOTEH.CommitUpdates;
Table_COA.CommitUpdates;
Table_COI.CommitUpdates;
Table_COJ.CommitUpdates;
Table_QUOTED.CommitUpdates;

請問在ApplyUpdates之前有什么操作會導致出此Error?非常之急!!!
 
'Couldn't perform the edit because another user changed the record.'
这一句的意思是说:你在读取数据后,已经有人改了这条记录,你不能再修改它了。
是不是由于多用户造成的问题?
 
教父,我的程式是Delphi 5 +MySQL for NT,暫時是單用戶使用(我一個在調試),肯定是程序
里面有語句出了問題, 你能再舉例說一下這種情況好嗎?是否有太多的Edit 和Post.
 
试试变动几个ApplyUpdates的位置。
 
單從代碼上看不出什么問題﹐試著檢查一下你的資料庫結構
有很多可能﹐我見過一次是欄位長度的錯誤
 
這個報價單輸入程式原來表是用Paradox的,一切都正常,但轉MySQL之后就
一直出這個Error,到現在還有這個問題!wlq, 你說欄位長度的問題,我應該
怎么去查找? 是不是Primary Key? 但是我將資料從Paradox轉到MySQL都很
正常. 請再詳細點好嗎?
 
可能是“长事务”或是MySQL对ApplyUpdate的个数有限制
 
你修改的这些表是否有关联,如果有外键关联的话,一个表在前面被修改了,与它想关联的
那个表也会自动被修改的,那样你对它修改就会出错了
 
mysql 支持事务么?是不是这个原因?
 
hingman:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
1. 我记得MySQL好象是支持事务的, 问题是它是否支持嵌套事务, 别忘了,
ApplyUpdates会自动运行一个Transection.
 
多人接受答案了。
 
后退
顶部