Canot perform this operation on an open dataset ! |
尚未結案
|
zeusibson
一般會員 發表:3 回覆:2 積分:1 註冊:2002-08-21 發送簡訊給我 |
procedure TF_Main.SpeedButton5Click(Sender: TObject); var strTheDate:String; begin strTheDate:=ChangeDate1(DateTimePicker1.Date); QPark.SQL.Clear; QPark.SQL.add('Select DISTINCT CardNo,ParkDate,ParkTime,MachineNo,Msg From Park where ParkDate=' '''' strTheDate ''''); showmessage(Qpark.SQL.Text); QPark.Close; QPark.Open; end;ChangeDate1 是我自己的 function ,回傳值以 ShowMessage 秀出過,為正常日期格式,QPark是TADOQuery,DBGrid 的 DataSource 設為我的 DataSource1,DataSource1 的 DataSet 設為 QPark,TADOConnection1 於TF_Main.FormShow 時確定連上資料庫 park.mdb 檔。 以上程式碼,第一次按鈕執行時沒問題, DBGrid 中有出現資料,但 CardNo 欄位還是出現重複的資料,第二次按鈕執行,則出現視窗【QPark : Canot perform this operation on an open dataset .】,第三次按鈕執行,則出現視窗【可能是 BOF 或 EOF 的值為 True,或目前的紀錄已被刪除。所要求的操作需要目前的紀錄。】,第四次按鈕執行,則出現視窗【Access violation at address 0047029A in module Park.exe , Read of address 00000000 .】依此類推,一直重複這三個錯誤訊息視窗。 真是弄不懂問題出在那兒阿 < >~~先謝謝各位的幫忙囉< > |
kgt
高階會員 發表:17 回覆:308 積分:165 註冊:2002-03-13 發送簡訊給我 |
|
dinokuo
初階會員 發表:3 回覆:29 積分:31 註冊:2002-09-11 發送簡訊給我 |
試一試...
with 這個關鍵字很好用, 可以讓程式碼比較簡潔哦!! procedure TF_Main.SpeedButton5Click(Sender: TObject); varstrTheDate:String;
begin
strTheDate:=ChangeDate1(DateTimePicker1.Date);
with QPark do begin
QPark.Close; //這兒要先關掉 query
SQL.Clear;
QPark.SQL.add('Select DISTINCT
CardNo,ParkDate,ParkTime,MachineNo,Msg From Park where
ParkDate=' '''' strTheDate '''');
showmessage(Qpark.SQL.Text);
QPark.Open;
QPark.Close;
end;
end; 發表人 - dinokuo 於 2002/10/03 12:19:54
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |