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

Adoquery按保存(Adoquery1.updatebatch())的时候出错.怎么判断当前是否

答題得分者是:cashxin2002
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-20 19:35:55 IP:211.148.xxx.xxx 未訂閱
procedure Tfrmorder.BitBtn4Click(Sender: TObject); //保存数据 begin adoquery1.FieldByName('状态').Value:='未完成'; if (adoquery1.state=dsEdit)or(adoquery1.state=dsInsert) then //一按保存,这里出错 adoquery1.UpdateBatch(); end; 以下是出错的信息: --------------------------- Debugger Exception Notification --------------------------- Project Project.exe raised exception class EDatabaseError with message 'ADOQuery1: Dataset not in edit or insert mode'. Process stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- 交流.學習
------
交流.學習
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-20 19:50:30 IP:202.62.xxx.xxx 未訂閱
您好﹗    您似乎有些誤解ADO的BatchUpdate功能了﹐用BatchUpdate關鍵字查詢應會發現許多相關的文章﹒ 程式碼改為如下應可使用﹕
procedure Tfrmorder.BitBtn4Click(Sender: TObject); //保存数据
begin
  adoquery1.FieldByName('状态').Value:='未完成';
  if (adoquery1.state In [dsEdit, dsInsert]) then 
    adoquery1.Post;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-20 20:01:49 IP:211.148.xxx.xxx 未訂閱
引言: 您好﹗ 您似乎有些誤解ADO的BatchUpdate功能了﹐用BatchUpdate關鍵字查詢應會發現許多相關的文章﹒ 程式碼改為如下應可使用﹕
procedure Tfrmorder.BitBtn4Click(Sender: TObject); //保存数据
begin
  adoquery1.FieldByName('状态').Value:='未完成';
  if (adoquery1.state In [dsEdit, dsInsert]) then 
    adoquery1.Post;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
也是不行,按Save后提示: --------------------------- Project --------------------------- ADOQuery1: Dataset not in edit or insert mode. --------------------------- 确定 --------------------------- 交流.學習
------
交流.學習
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-20 20:32:02 IP:202.62.xxx.xxx 未訂閱
您好﹗    
procedure Tfrmorder.BitBtn4Click(Sender: TObject); //保存数据
begin
  adoquery1.FieldByName('状态').Value:='未完成';
  if Not (adoquery1.state In [dsEdit, dsInsert]) then 
    begin
      ShowMessage('資料表未處于修改或新增狀態﹐無法保存');
      Abort;
    end
  else
    begin
      adoquery1.Post;
    end;
end;
//您需要确認在按下此鍵的時候﹐資料集元件adoquery1已經處于修改或者修改狀態﹐以上程式碼控制如果未處于此兩種狀態時則會取消動作
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-20 21:00:34 IP:211.148.xxx.xxx 未訂閱
引言: 您好﹗
procedure Tfrmorder.BitBtn4Click(Sender: TObject); //保存数据
begin
  adoquery1.FieldByName('状态').Value:='未完成';//还没edit就赋值了,所以错在这里,谢啦
  if Not (adoquery1.state In [dsEdit, dsInsert]) then 
    begin
      ShowMessage('資料表未處于修改或新增狀態﹐無法保存');
      Abort;
    end
  else
    begin
      adoquery1.Post;
    end;
end;
//您需要确認在按下此鍵的時候﹐資料集元件adoquery1已經處于修改或者修改狀態﹐以上程式碼控制如果未處于此兩種狀態時則會取消動作
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
交流.學習
------
交流.學習
系統時間:2024-06-18 21:39:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!