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

ADOConnect連線到Sql server和執行緒結束的問題

缺席
hughes0201
一般會員


發表:12
回覆:10
積分:9
註冊:2008-11-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-02 14:35:19 IP:61.31.xxx.xxx 訂閱
因為我的程式需要不斷的去連接對方的 sql server的主機,
並把資料上傳,故所以基本上如果程式遇到斷線的話,我是以
執行sql語法看有沒有遇到錯誤來判斷是否連線。有的話,再
重新連線。

主執行緒->使用者界面
工作執行緒->負責不斷的檢偵資料庫遠端連線,並且有錯誤時重新連線,沒有時,新增資料。
在建構子已經指定FreeOnTerminate = true;

我在主程式結束時,如果遠端資料庫是斷線狀態,
我的工作執行緒如果正在這時執行 ADOConnect->Connected = true;
而timeout時間是假設是30秒的話。

主程式會等到timeout完才會結束。
可是我已經在主程式 OnClose裡加入工作執行緒->Terminate();

有沒有辦法可以讓工作執行緒在主程式結束時就結束,而不用等到ADOConnect的timeout結束才結束?
謝謝~~~
hughes0201
一般會員


發表:12
回覆:10
積分:9
註冊:2008-11-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-03 22:46:44 IP:59.115.xxx.xxx 訂閱
找了很久,我的情況和下面這個有點類似
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=21914



就是無法設 connection timeout為更短,
而我是在另一個執行緒裡去測試連線,
在運作時不會影響到主執行緒,
只是在結束時,如遇到timeout,程式會等到timeout完時才結束,
而這段時間很久,約40~50秒~~~

我試過把 connection->close()
把thread關掉,都不行~~
macchen
初階會員


發表:66
回覆:102
積分:33
註冊:2006-07-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-04-04 12:53:40 IP:118.169.xxx.xxx 訂閱
版主你好,請問你有找到如果在connected := false時,可以直接讓db server上面的連線立即終斷嗎?謝謝,如果有的話可否分享一下如何解決這個問題,謝謝你。 
------
DELPHI初學者
系統時間:2017-10-18 9:47:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!