在一个form中**按钮**           ** 用法** 
  添加                将几个edit 的数据添加到一个表中
  清空表              将整个表的内容清空** 其他控件**         ** 作用** 
  edit(s)                用于输入数据
  dbgrid                 用于显示表中的数据
  DBNavigator            与dbgrid 关联进行想关数据的操作delphi7 ado access 
操作: 当按"添加"接钮添加数据时,及用 dbnavigator 删除某一条记录时不会出错,
      删除甘一条,或不断地一条一条地删除记录再添加新的记录都不会出错
!!!!!!!!!当用一次过清空表的所有记录再添加就会出错,!!!!!!!!!添加记录及清空表的代码如下:DM.DPD.Append ;  DM.DPD.FieldByName('名称').AsString:= Edit1.Text ;
  DM.DPD.FieldByName('规格').AsString:= Edit2.Text ;DM.DPD.Post ;---------------------------------------------------
清空表的代码begin
 with dm.DPD do
  begin
    close;
    sql.Clear;
    sql.add('DELETE tempinfor.* FROM tempinfor;');
    ExecSQL;
  end;end;
------------------------------------------------------出错信息:cannot perform this iperation on a closed dataset
 请问我要怎写才不会清空表时,再添加不会出错,请写出代码

解决方案 »

  1.   

    'DELETE  FROM tempinfor;'
      

  2.   

    数据集未打开。
    请空表之后,数据集就CLOSE了,你先把数据集打开(返回结果,即使是空的也要用一个SQL语句返回结果),然后在添加即可。
      

  3.   

    你先前APPEND的时候(不出错的时候)DBGRID里的内容是什么语句查出来的,就用这个语句在请空代码后,查一边数据库,然后在对其添加。
      

  4.   

    删除整个表用的ADOQUERY与增加和显示数据的ADOQUERY别用同一个
    如:用三个AdoQuery
      AdoDele用于删除记录
      AdoAppend用于增加记录,建议增加记录也用SQL的insert语句
      AdoDisplay用于显示数据集数据删除后
    AdoDisplay.Requery;