為何Table 初始值設為True,無法執行EmptyTable? |
答題得分者是:danny
|
tangkh
一般會員 發表:26 回覆:28 積分:10 註冊:2002-09-11 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
引言: 當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 發送簡訊給我 |
|
tangkh
一般會員 發表:26 回覆:28 積分:10 註冊:2002-09-11 發送簡訊給我 |
引言:感謝兩位的幫忙,經過測試後,我發現我們三個人寫法在Compile完成,離開Delphi後,直接執行.exe檔,都可以正確執行,但在Delphi環境中直接Run則會出現現'Table is busy.',不知適合原因?請指教!引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin if Active then Close; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?@@~~飛翔在天際的精靈~~@@ |
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
引言:這是delphi本身的預防機制 會發生這個問題是 當你的程式執行到EmptyTable這一行時 正好有其他的User正在使用這個Table 所以就發生這個問題了 當User離開後 就可執行了 如果由執行檔執行而沒有問題的話 就沒問題 < >< > 回首來時路 也無風雨也無晴~~@.@引言:感謝兩位的幫忙,經過測試後,我發現我們三個人寫法在Compile完成,離開Delphi後,直接執行.exe檔,都可以正確執行,但在Delphi環境中直接Run則會出現現'Table is busy.',不知適合原因?請指教!引言: 當Table1 初始值設為True時 程式內容如下: with table1 do begin if Active then Close; EmptyTable; end; 在 Run 時,為何會出現'Table is busy.'?@@~~飛翔在天際的精靈~~@@
------
天行健 君子當自強不息~~@.@ |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
引言: 當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 發送簡訊給我 |
引言:但是我實際做一次 並沒有發生這個問題ㄝ 怪怪~~~~~~~~~~~~~~< >< > 回首來時路 也無風雨也無晴~~@.@引言: 當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 發送簡訊給我 |
參考 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 發送簡訊給我 |
|
tangkh
一般會員 發表:26 回覆:28 積分:10 註冊:2002-09-11 發送簡訊給我 |
引言:首先感謝各位先進的指導,第一次發問,就得到這麼多的協助,您們的熱心,真令我感動! Danny的看法應該比較接近我的處境,因為只要不在『Design Time 時有設為 table1.Active := True 』就一切OK,再次感謝大家的幫忙,祝福大家,中秋節愉快引言: 當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. |
ship88
一般會員 發表:7 回覆:7 積分:2 註冊:2004-02-27 發送簡訊給我 |
|
tangkh
一般會員 發表:26 回覆:28 積分:10 註冊:2002-09-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |