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

ADOConnection,如何判断它是否给调用,如何刷新等。

答題得分者是:Stallion
wlt3022
一般會員


發表:9
回覆:3
積分:2
註冊:2007-09-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-08 20:14:59 IP:121.34.xxx.xxx 未訂閱
ADOQuery1
ADOQuery2
ADOQuery3
以上三个都连接ADOConnection1,启用事务处理,三个客户端同时使用以上三个来操作数据表。提示无法启用更多事务...

这个问题如何解决?

能否建立多个一ADOConnection2来帮助ADOConnection1进行处理,当ADOConnection1忙时启用ADOConnection2,
ADOConnection2忙时启用ADOConnection1
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-08 20:28:23 IP:211.22.xxx.xxx 未訂閱

===================引 用 wlt3022 文 章===================
ADOQuery1
ADOQuery2
ADOQuery3
以上三个都连接ADOConnection1,启用事务处理,三个客户端同时使用以上三个来操作数据表。提示无法启用更多事务...
这个问题如何解决?
看不懂~可否列出有問題部分的程式碼?

能否建立多个一ADOConnection2来帮助ADOConnection1进行处理,当ADOConnection1忙时启用ADOConnection2,
ADOConnection2忙时启用ADOConnection1
有必要的話!當然可以~
wlt3022
一般會員


發表:9
回覆:3
積分:2
註冊:2007-09-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-08 20:48:05 IP:121.34.xxx.xxx 未訂閱

ADOQuery1
ADOQuery2
ADOQuery3
以上三个都连接ADOConnection1,启用事务处理,三个客户端同时使用以上三个来操作数据表。提示无法启用更多事务...
这个问题如何解决?
看不懂~可否列出有問題部分的程式碼?

<
例:

当客户端1调用ADOQuery1更新数据表1----ADOConnection1启用事务回滚技术。

当客户端2调用ADOQuery2更新数据表2----ADOConnection1启用事务回滚技术。

系统提示:无法启用更多事务...。

更新数据表无法完成。

这个情况如何解决。
>

能否建立多个一ADOConnection2来帮助ADOConnection1进行处理,当ADOConnection1忙时启用ADOConnection2,
ADOConnection2忙时启用ADOConnection1
有必要的話!當然可以~

ADOConnection,如何判断它是否给调用,如何刷新等?
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-08 21:49:48 IP:211.22.xxx.xxx 未訂閱
===================引 用 wlt3022 文 章===================
例:
当客户端1调用ADOQuery1更新数据表1----ADOConnection1启用事务回滚技术。
当客户端2调用ADOQuery2更新数据表2----ADOConnection1启用事务回滚技术。
系统提示:无法启用更多事务...。
更新数据表无法完成。
这个情况如何解决。
當一個資料庫進行交易鎖定時(Connection.BeginTran),其他的連線的任何動作是會被回絕的,一直要等到該正在交易連線完成後(CommitTran)後,其他的連線動作才能繼續,你的問題應該是在這裡。

ADOConnection,如何判断它是否给调用,如何刷新等?
Connection本身可以提供給多個Query,Command等運用,所以問題癥結應該擺在資料庫可否正確被Connection給Open!開啟後如果要對資料庫作動作前(多人),必須要注意該連線是否是進入交易的狀態(transaction),完成交易後他人才能進行其他的動作,其他如單純讀取就沒那麼複雜。
wlt3022
一般會員


發表:9
回覆:3
積分:2
註冊:2007-09-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-08 22:18:49 IP:121.34.xxx.xxx 未訂閱


例:
当客户端1调用ADOQuery1更新数据表1----ADOConnection1启用事务回滚技术。
当客户端2调用ADOQuery2更新数据表2----ADOConnection1启用事务回滚技术。
系统提示:无法启用更多事务...。
更新数据表无法完成。
这个情况如何解决。
當一個資料庫進行交易鎖定時(Connection.BeginTran),其他的連線的任何動作是會被回絕的,一直要等到該正在交易連線完成後(CommitTran)後,其他的連線動作才能繼續,你的問題應該是在這裡。

如何判断ADOConnection进入了BeginTran这种状态?
又如何知道它是否做了CommitTran状态。

ADOConnection,如何判断它是否给调用,如何刷新等?
Connection本身可以提供給多個Query,Command等運用,所以問題癥結應該擺在資料庫可否正確被Connection給Open!開啟後如果要對資料庫作動作前(多人),必須要注意該連線是否是進入交易的狀態(transaction),完成交易後他人才能進行其他的動作,其他如單純讀取就沒那麼複雜。

Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-09-09 10:13:47 IP:211.22.xxx.xxx 未訂閱
===================引 用 wlt3022 文 章===================
如何判断ADOConnection进入了BeginTran这种状态?
又如何知道它是否做了CommitTran状态。
從connection 的 OnBeginTransComplete 可以知道他已經進入交易了,相同的從 OnCommitTransComplete 可以知道他已經完成交易了。
ADOConnection,如何判断它是否给调用,如何刷新等?
從 connection 的 active 狀態可以知道他是否在連線狀態,以及從 OnConnectComplete 可以知道完成連線了。

p.s.請善用搜尋以及Delphi內建的線上說明。
系統時間:2024-11-22 20:09:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!