站長請教各位一個TQuery.Close的觀念問題 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
站長被一個網友問到一個觀念的問題: 拉一個TQuery元件(Query1)於TForm上(Form1),
當此Form1.Close且Form1.Free之後
原先Query1已open的資料庫通道,需不需要由程式去下Query1.Close? 1.是Form1 Close時就會自動執行Query1.Close
2.或是Form1 Free時會自動執行Query1.Close
3.或是一定要在Form1.OnClose()事件中自己去下Query1.Close的動作,才能讓資料庫的通道去除! 網友您的答案是多少?
謝謝指導! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
ryback
一般會員 發表:0 回覆:4 積分:0 註冊:2002-06-25 發送簡訊給我 |
|
owenyang
一般會員 發表:21 回覆:17 積分:7 註冊:2002-03-26 發送簡訊給我 |
|
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
引言: 站長被一個網友問到一個觀念的問題: 拉一個TQuery元件(Query1)於TForm上(Form1), 當此Form1.Close且Form1.Free之後 原先Query1已open的資料庫通道,需不需要由程式去下Query1.Close? 1.是Form1 Close時就會自動執行Query1.Close 2.或是Form1 Free時會自動執行Query1.Close 3.或是一定要在Form1.OnClose()事件中自己去下Query1.Close的動作,才能讓資料庫的通道去除! 網友您的答案是多少? 謝謝指導! ~~~Delphi K.Top討論區站長~~~我查 TQuery 的 Source code 如下: destructor TQuery.Destroy; begin Destroying; Disconnect; SQL.Free; FParams.Free; FDataLink.Free; StrDispose(SQLBinary); inherited Destroy; end; procedure TQuery.Disconnect; begin Close; UnPrepare; end;TQuery 的 owner 是 form, 而 onwer 有責任 Free 所屬的 object, 所以在 Destroy 中是會作 Close 的動作.
------
將問題盡快結案也是一種禮貌! |
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |