Adoquery按保存(Adoquery1.updatebatch())的时候出错. - ...

来源:百度文库 编辑:神马文学网 时间:2024/04/29 06:28:58

Adoquery按保存(Adoquery1.updatebatch())的时候出错.

Adoquery, 保存 Adoquery按保存(Adoquery1.updatebatch())的时候出错.怎么判断当前是否编辑状态?

2005-07-20

在 Delphi / 数据库相关

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
  ---------------------------

Top

adoquery1.State=

Top

procedure   Tfrmorder.BitBtn4Click(Sender:   TObject);   //保存数据
  begin

      adoquery1.FieldByName('状态').Value:='未完成';
    if   (adoquery1.state=dsEdit)or(adoquery1.state=dsInsert)   then     //一按保存,这里出错
      adoquery1.UpdateBatch();
  end;

  一样出错
Top

ADOQuery1.State
      TDataSetState   =   (dsInactive,   dsBrowse,   dsEdit,   dsInsert,   dsSetKey,
          dsCalcFields,   dsFilter,   dsNewValue,   dsOldValue,   dsCurValue,   dsBlockRead,
          dsInternalCalc,   dsOpening);

Top

先adoquery1.edit;
  试试!
Top

procedure   Tfrmorder.BitBtn4Click(Sender:   TObject);   //保存数据
  begin

    if   (adoquery1.state=dsEdit)or(adoquery1.state=dsInsert)   then
      begin
      adoquery1.FieldByName('状态').Value:='未完成';
      adoquery1.UpdateBatch();
      end;
  end;

  这样就没错了,谢谢各位