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

Canot perform this operation on an open dataset !

尚未結案
zeusibson
一般會員


發表:3
回覆:2
積分:1
註冊:2002-08-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-03 07:49:49 IP:61.64.xxx.xxx 未訂閱
    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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-03 09:09:21 IP:61.30.xxx.xxx 未訂閱
QPark.Close;這一列是否移至begin的下一列
dinokuo
初階會員


發表:3
回覆:29
積分:31
註冊:2002-09-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-03 12:17:38 IP:61.218.xxx.xxx 未訂閱
試一試... 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
系統時間:2024-05-07 16:38:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!