全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1577
推到 Plurk!
推到 Facebook!

為何Table 初始值設為True,無法執行EmptyTable?

答題得分者是:danny
tangkh
一般會員


發表:26
回覆:28
積分:10
註冊:2002-09-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-19 13:52:30 IP:202.39.xxx.xxx 未訂閱
當Table1 初始值設為True時 程式內容如下: with table1 do begin Active := False; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-19 14:05:49 IP:61.220.xxx.xxx 未訂閱
引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin Active := False; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?
應該不會這樣 把Active := False; 改成close; 或 if Table1.active then begin table1.close; table1.EmptyTable; table1.open; end; 試試看 回首來時路 也無風雨也無晴~~@.@ 發表人 - T.J.B 於 2002/09/19 14:09:44
------
天行健
君子當自強不息~~@.@
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-19 15:07:20 IP:211.20.xxx.xxx 未訂閱
引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin if Active then Close; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?
@@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
tangkh
一般會員


發表:26
回覆:28
積分:10
註冊:2002-09-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-19 15:51:42 IP:202.39.xxx.xxx 未訂閱
引言:
引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin if Active then Close; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?
@@~~飛翔在天際的精靈~~@@
感謝兩位的幫忙,經過測試後,我發現我們三個人寫法在Compile完成,離開Delphi後,直接執行.exe檔,都可以正確執行,但在Delphi環境中直接Run則會出現現'Table is busy.',不知適合原因?請指教!
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-09-19 16:46:20 IP:61.220.xxx.xxx 未訂閱
引言:
引言:
引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin if Active then Close; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?
@@~~飛翔在天際的精靈~~@@
感謝兩位的幫忙,經過測試後,我發現我們三個人寫法在Compile完成,離開Delphi後,直接執行.exe檔,都可以正確執行,但在Delphi環境中直接Run則會出現現'Table is busy.',不知適合原因?請指教!
這是delphi本身的預防機制 會發生這個問題是 當你的程式執行到EmptyTable這一行時 正好有其他的User正在使用這個Table 所以就發生這個問題了 當User離開後 就可執行了 如果由執行檔執行而沒有問題的話 就沒問題 < >< > 回首來時路 也無風雨也無晴~~@.@
------
天行健
君子當自強不息~~@.@
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-09-19 17:32:54 IP:211.22.xxx.xxx 未訂閱
應該是 IDE 內(或 Design Time)的 Table1 是 Active 的 然後 run 的時候, 就會發生上述訊息了。 -- Everything I say is a lie.
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-09-19 17:33:40 IP:210.202.xxx.xxx 未訂閱
引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin Active := False; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?
這是因為 EmptyTable 只允許一個 Table Connect (就是獨佔模式), 而您在 Design Time 時有設為 table1.Active := True 這算一個, Run Time 時執行 table1.Active 因為內定是 True 所以又算一個, 這樣已經不是獨佔模式了, 所以才會出現 Table is busy.
------
將問題盡快結案也是一種禮貌!
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-09-19 17:47:54 IP:61.220.xxx.xxx 未訂閱
引言:
引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin Active := False; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?
這是因為 EmptyTable 只允許一個 Table Connect (就是獨佔模式), 而您在 Design Time 時有設為 table1.Active := True 這算一個, Run Time 時執行 table1.Active 因為內定是 True 所以又算一個, 這樣已經不是獨佔模式了, 所以才會出現 Table is busy.
但是我實際做一次 並沒有發生這個問題ㄝ 怪怪~~~~~~~~~~~~~~< >< > 回首來時路 也無風雨也無晴~~@.@
------
天行健
君子當自強不息~~@.@
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-09-19 17:59:45 IP:211.22.xxx.xxx 未訂閱
參考 Dan Brennand 的說明: You have to do several things to use the EmptyTable method: 1. make sure the table is not open in the IDE. If you run your app from the IDE, the IDE itself acts like a second user connected to the table. 2. the table must be in excluive mode. If the table must be shared by different parts of the program, or by other users, then you need code to set Exclusive to true before emptying it, then set it back. 3. the table must be closed when emptying it. Refer to TTable method EmpytTable, and the Exclusive property, in the online help. -- Everything I say is a lie.
P.D.
版主


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-09-19 21:53:55 IP:210.85.xxx.xxx 未訂閱
引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin Active := False; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?
請設定 Table1.Exclusive:= True;
tangkh
一般會員


發表:26
回覆:28
積分:10
註冊:2002-09-11

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-09-20 08:24:36 IP:202.39.xxx.xxx 未訂閱
引言:
引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin Active := False; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?
這是因為 EmptyTable 只允許一個 Table Connect (就是獨佔模式), 而您在 Design Time 時有設為 table1.Active := True 這算一個, Run Time 時執行 table1.Active 因為內定是 True 所以又算一個, 這樣已經不是獨佔模式了, 所以才會出現 Table is busy.
首先感謝各位先進的指導,第一次發問,就得到這麼多的協助,您們的熱心,真令我感動! Danny的看法應該比較接近我的處境,因為只要不在『Design Time 時有設為 table1.Active := True 』就一切OK,再次感謝大家的幫忙,祝福大家,中秋節愉快
ship88
一般會員


發表:7
回覆:7
積分:2
註冊:2004-02-27

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-02-29 09:26:19 IP:218.162.xxx.xxx 未訂閱
問一下當我們做 清空資料庫 要使用獨佔模式, 設計時期雖然把active = false ; 再使用 執行時期 open; 可是如果當兩個人共用table時,怎樣子不讓它出現錯誤訊息, 或不要中斷程式;
tangkh
一般會員


發表:26
回覆:28
積分:10
註冊:2002-09-11

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-03-01 12:30:05 IP:202.39.xxx.xxx 未訂閱
引言: 問一下當我們做 清空資料庫 要使用獨佔模式, 設計時期雖然把active = false ; 再使用 執行時期 open; 可是如果當兩個人共用table時,怎樣子不讓它出現錯誤訊息, 或不要中斷程式;
 
  try
    .
    . 
    Active := False;
    EmptyTable;
    .
    .
    .
  except
    Showmessage('...');
  end;    參考看看!
系統時間:2024-05-02 23:00:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!