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

ADOQURY 操作正常但偶爾異常,真是怪卡啦!

答題得分者是:pedro
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-11 05:19:12 IP:220.134.xxx.xxx 訂閱
各位前輩及版主大人: 我撰寫如下呼叫公用程序,宣告ADOQUERY,連續使用超過十次後,就會出現異常,不知道是否我哪邊撰寫有遺漏, 可否請各位幫小弟我看看,真是找不到錯誤在哪? 附上錯誤訊息    萬分感謝    

<textarea class="delphi" rows="10" cols="60" name="code"> function Get_User_name(Var_UserID: string): string; var rs: TADOQuery; begin if nz(Var_UserID, '') = '' then begin Result := ''; exit; end; // 用以立即顯示使用者名稱 rs := TADOQuery.Create(nil); rs.ConnectionString := Sy_Data.Cnt_S.ConnectionString; rs.SQL.Clear; rs.SQL.Text := ' SELECT * FROM 使用者 WHERE [使用者帳號]=' QuotedStr(Var_UserID) ''; rs.Active := true; if rs.Recordset.RecordCount > 0 then begin Result := rs['姓名']; end else begin Result := ''; end; end;</textarea>
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
hagar
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-11 08:29:00 IP:210.242.xxx.xxx 未訂閱
rs 變數用完了沒有 Free
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-06-11 08:56:33 IP:220.134.xxx.xxx 訂閱
版主大人:

在函數區塊內的變數,我記得不是會自動消失!

難不成我記錯了!
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-06-11 16:30:10 IP:60.248.xxx.xxx 未訂閱
因為在Create時,參數為nil
一般若要在Form的Destroy時回收記憶體,需指定Owner,也就是Form
離開副程式並不會把指標做回收的動作
需由寫程式釋放Free掉
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-11 16:31:42 IP:220.134.xxx.xxx 訂閱
前輩:

受教了! 原來我這麼不懂得Delphi ,感覺有如醍醐灌頂! 感謝您!
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
系統時間:2024-05-20 16:56:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!