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

“無法進行異動;已有太多的巢狀異動”那位大大能解釋下這什麽意思?

尚未結案
dust.zhu
一般會員


發表:3
回覆:8
積分:2
註冊:2009-06-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-11-06 17:52:18 IP:221.224.xxx.xxx 訂閱
delphi 的ado操作access資料庫,報錯“無法進行異動;已有太多的巢狀異動”
那位大大能解釋下這什麽意思?
鄙人不勝感激!
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-11-06 22:46:11 IP:118.169.xxx.xxx 未訂閱
1.巢狀--> 就是迴圈, 如 FOR ..NEXT, DO ... WHILE, REPEAT ... UNTIL 等等
2.一般當迴圈太多層, 往往會造成運作上限入無止境的循還, 就會發生你提到的問題
所以檢查你的程式做了什麼事
===================引 用 dust.zhu 文 章===================
delphi 的ado操作access資料庫,報錯“無法進行異動;已有太多的巢狀異動”
那位大大能解釋下這什麽意思?
鄙人不勝感激!
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-11-07 23:00:50 IP:124.10.xxx.xxx 訂閱
用 ADO 操作 Access 發生的錯誤訊息,往往令人摸不著頭緒
我猜這一條錯誤訊息的意思,應該是指已經有了一個 Transaction,無法啟動另一個 Transaction
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
dust.zhu
一般會員


發表:3
回覆:8
積分:2
註冊:2009-06-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-11-12 10:03:25 IP:221.224.xxx.xxx 訂閱
現在程序不定時的報此錯誤
程序的邏輯如下:
主程序從oracle database下載數據到access,訪問採用的組件是BDE tquery,操作access採用的是TADOQUERY,每次下載大概有200多筆資料
try
ado.connection.BeginTrans;
//download data into access from oracle datase,
ado.connection.CommitTrans;
except
on e:exception do
begin
ado.connection.RollbackTrans
//show error!
end;
end;
另外有一個線程採用單獨的connection的tadoquery從access中讀取數據
程序運行一段時間后,就會偶發這種"無法進行異動,已有太多的..."錯誤;導致線程無法讀取到最新的數據!
各位大大,期望指點迷津,謝謝!

編輯記錄
dust.zhu 重新編輯於 2009-11-12 10:08:58, 註解 無‧
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-11-12 10:08:29 IP:59.125.xxx.xxx 訂閱
這種長時間的運作,最好是在需要與資料庫連線之前才連線,處理完後就與資料庫離線
你可以改成這樣試試看
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-04-19 23:52:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!