我使用的是ADOQuery,我想往数据库添加若干条记录,但是想暂时存放在ADOQuery中,等到按下“确定”按钮时再把它们写到数据库中。假如按了“取消”按钮则不写入。比如有一个名为“Add”的按钮
Add.click
begin
  ADOQuery.open;
  ADOQuery.insert;
  ADOQuery.FieldByName(字段名).AsString:=......;
end;
我按若干次这个按钮,就是“添加”了若干次记录。但是我想在按“取消”按钮时把之前的记录消掉。我想知道ADOQuery有没有暂存若干条新记录的功能。问题描述如上,请各位大哥大姐赐教!!!小弟在此先谢过了

解决方案 »

  1.   

    用SQL吧
    add:
      ADOQuery.SQL.Add('INSERT INTO TABLE (...) VALUES(...)');
    OK:
      ADOQuery.SQL.ExecSQL;
    Cancel:
      ADOQuery.SQL.Clear;
      

  2.   

    试试把ADOQuery的属性Lock Type设置成ltBatchOptimistic。在点击最终保存时,调用方法ADOQuery.UpdateBatch,取消按钮中调用ADOQuery.CancelBatch
      

  3.   

    fqsxr(超级番茄) 的方法我试了,出错,但是我觉得应该是可以吧,可能是我自己不会弄。我个人不大喜欢在Delphi中使用SQL语句,因为复杂语句写起来太麻烦,容易出错,当然是我的个人看法和喜好的问题,呵呵。gulf1234(小顾) 的方法很好,很方便,的确可以实现的。在此多谢两位了~~~~~都有分,呵呵   *******************************结贴********************************************