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

如何將ADOQuery清空

尚未結案
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-09 17:14:08 IP:211.22.xxx.xxx 未訂閱
請教各位前輩: 小弟使用ADOQuery1.loadfromfile(filename)後 資料便一直存在於記憶體當中 請問該如何清除 若不清除,這個ADOQuery便不能再做其他的查詢使用 ~~應無所住而生其心~~
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-09 17:42:09 IP:61.218.xxx.xxx 未訂閱
試試看 Type A = Class( TAdoDataset ) ; end ; ........ ........ A( AdoQuery1 ).CloseCursor
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-09 18:23:45 IP:211.20.xxx.xxx 未訂閱
terrychen 你好 不是使用AdoQuery1.Close;就可以了嗎?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-09 18:25:27 IP:203.95.xxx.xxx 未訂閱
hi, 你可以先將 ADOQuery1.SQL.Clear, 然後再設定好 ADOQuery1.Connection 後, 給定 SQL Command 即可!
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-10 15:23:55 IP:211.76.xxx.xxx 未訂閱
感謝回應: Chance36、的做法小弟已試過,可惜一樣達不到情除的效果 timhuang大大的做法會出現『檔案名稱、目錄名稱或磁碟區標籤語法錯誤』 James大大的做法小弟試過以後,在去做其他資料的查詢 即select * from ... 會出現ADOquery1: field '' not find 請前輩在指點 ~~應無所住而生其心~~ 發表人 - terrychen 於 2004/04/10 15:31:56
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-10 18:02:20 IP:218.170.xxx.xxx 未訂閱
測試一下並不知道您所說的情況是怎樣 ,以下是我測試的 Code
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Text := 'select * from employee' ;
  ADOQuery1.Open;
  ADOQuery1.SaveToFile('C:\AAA.XML');
  ADOQuery2.LoadFromFile('C:\AAA.XML');
end;    procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.LoadFromFile('C:\AAA.XML');
  ADOQuery2.Close;
  ADOQuery2.LoadFromFile('C:\AAA.XML');
end;
用 MSSQL 裡面的 pubs 資料庫測試 , 感覺沒有什麼問題耶
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-10 18:29:07 IP:203.204.xxx.xxx 未訂閱
引言:即select * from ... 會出現ADOquery1: field '' not find
terrychen 你好 由於TAdoQuery的LoadFromFile或SaveToFile會把ADoquery的CommandType改成cmdFile,以致於後面要執行SQL指令時CommandType仍為cmdFile所以Adoquery把你的SQL指令當成檔案名稱來處理了。 然而ADoQuery並沒開放CommandType讓我們修改,於是嘗試強制轉型,轉成TAdoDataset(因為它有CommandType屬性且與TAdoQuery有相同的祖先)後再來改成cmdText,果然可以了。 AdoQuery1.LoadFromFile('......'); 之後 Adoquery1.Close; TADODataSet(AdoQuery1).CommandType := cmdText; AdoQuery1.SQL.Text := 'Select * From ....'; AdoQuery1.Open; 發表人 - chance36 於 2004/04/10 18:30:43
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-10 20:13:25 IP:211.76.xxx.xxx 未訂閱
引言: 測試一下並不知道您所說的情況是怎樣 ,以下是我測試的 Code
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Text := 'select * from employee' ;
  ADOQuery1.Open;
  ADOQuery1.SaveToFile('C:\AAA.XML');
  ADOQuery2.LoadFromFile('C:\AAA.XML');
end;    procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.LoadFromFile('C:\AAA.XML');
  ADOQuery2.Close;
  ADOQuery2.LoadFromFile('C:\AAA.XML');
end;
用 MSSQL 裡面的 pubs 資料庫測試 , 感覺沒有什麼問題耶
感謝回應 請您試試,按完Button1再按Button2然後再按Button1就會出現小弟說的錯誤訊息 ~~應無所住而生其心~~
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-10 20:16:50 IP:211.76.xxx.xxx 未訂閱
引言:
引言:即select * from ... 會出現ADOquery1: field '' not find
terrychen 你好 由於TAdoQuery的LoadFromFile或SaveToFile會把ADoquery的CommandType改成cmdFile,以致於後面要執行SQL指令時CommandType仍為cmdFile所以Adoquery把你的SQL指令當成檔案名稱來處理了。 然而ADoQuery並沒開放CommandType讓我們修改,於是嘗試強制轉型,轉成TAdoDataset(因為它有CommandType屬性且與TAdoQuery有相同的祖先)後再來改成cmdText,果然可以了。 AdoQuery1.LoadFromFile('......'); 之後 Adoquery1.Close; TADODataSet(AdoQuery1).CommandType := cmdText; AdoQuery1.SQL.Text := 'Select * From ....'; AdoQuery1.Open;
謝謝Chance36大大回應 小弟試過以後,果然可以,真是太感謝了 ~~應無所住而生其心~~
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-04-11 01:18:59 IP:218.170.xxx.xxx 未訂閱
奇怪 , 一直測不出同樣的問題 !! 莫非您是使用 Delphi 5 的 ADO ?
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-04-11 12:02:55 IP:211.76.xxx.xxx 未訂閱
引言: 奇怪 , 一直測不出同樣的問題 !! 莫非您是使用 Delphi 5 的 ADO ?
小弟使用過D5、6、7都會耶 ~~應無所住而生其心~~
系統時間:2024-09-09 18:03:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!