線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2132
推到 Plurk!
推到 Facebook!

XE 使用 BDX 更新資料會卡彈,可是2010不會

缺席
shininggod
一般會員


發表:16
回覆:20
積分:17
註冊:2009-05-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-04-29 18:22:02 IP:114.34.xxx.xxx 訂閱
現在是2010跟XE兩個都灌起來了

用SQLquery DatasetProvider ClientDataSet DataSource

程式碼不變
2010跑的時候沒有問題

XE跑的時候,在更新資料的時候
ClientDataSet.Post;
ClientDataSet .ApplyUpdate(0);會出現
"不允許進行新交易,因為有其他執行緒正在工作階段中執行。"
然後就不會更新.

我用SQL profiler 啥都trace不到....

基本上不太可能土法煉鋼重新一個一個試Orz
所以是想請教2010 vs XE DBX 有沒有不一樣的地方要改....


感謝樓下回答

MARS已經有再用了, 當初搞半天才知道要用"Mars_Connection=True", 奇怪一大堆 語法誰搞出來的, 還有 =yes ....

我後來有發現是我有呼叫 ClientDataSet.RefreshRecord; 多了這個所以爆....不過是在.edit之前呼叫的Orz..
問題另開一個主題好了,我在想一個好標題Orz..
編輯記錄
shininggod 重新編輯於 2011-04-29 04:22:39, 註解 無‧
shininggod 重新編輯於 2011-05-03 00:47:45, 註解 無‧
shininggod 重新編輯於 2011-05-03 00:49:17, 註解 無‧
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-04-30 21:33:17 IP:111.249.xxx.xxx 未訂閱
主要原因:
異動表本身的TIGGER / StoredProcedure被觸發了導致更新前後資料不一的情形

DBX的設定我並不清楚
不過你也許可以從以下的連結得到解答
http://social.technet.microsoft.com/Forums/en-US/sqldriverforphp/thread/3818563c-edd4-4d08-9c3d-61264808d806
http://blogs.msdn.com/b/cbiyikoglu/archive/2006/11/21/mars-transactions-and-sql-error-3997-3988-or-3983.aspx

===================引 用 shininggod 文 章===================
現在是2010跟XE兩個都灌起來了

用SQLquery DatasetProvider ClientDataSet DataSource

程式碼不變
2010跑的時候沒有問題

XE跑的時候,在更新資料的時候
ClientDataSet.Post;
ClientDataSet .ApplyUpdate(0);會出現
"不允許進行新交易,因為有其他執行緒正在工作階段中執行。"
然後就不會更新.

我用SQLprofiler 啥都trace不到....

基本上不太可能土法煉鋼重新一個一個試Orz
所以是想請教2010 vs XE DBX 有沒有不一樣的地方要改....
系統時間:2017-10-21 21:56:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!