当ADOQuery、DataSource和DBGrid关联起来后,在DBGrid里输入多行数据,所输入的多行数据就直接写到数据库里,我现在想,在DGBrid里能输入多行数据,但不想马上写到数据库里面,等点击确定的时候才把这多行数据写到数据库里,请问我该怎么实现,或这三个控件里有哪个属性可以设置,请指教!

解决方案 »

  1.   

    可以试试StringGrid来进行输入..DELPHI里面的StringGrid组件本身不支持输入..不过你可以去找一个第三方的,好像有这样的组件..
      

  2.   

    dbgrid 在你修改某一条记录后,再点其它记录,此时已经自动执行了adoquery1.post这个命令了。
    所以用户不需要点你设置的保存按钮,就已经修改了数据。
    设置adoquery的locktype属性为ltBatchOptimistic
    把adoquery1.UpdateBatch();这条命令,放在你的保存按钮中adoquery1.post 之后.
    这样你在dbgrid上的所有操作都没有保存,
    除非执行了adoquery1.UpdateBatch()
      

  3.   

    如果是修改多行可以用这个
    editUpdateBatch(arall)
    数据要在一个数据库中
      

  4.   

    ADO控件的设置如二楼所说,保存的时候就AdoQuery1.UpdateBatch(arAll);不想保存要恢复到原来的样子,则AdoQuery1.CancelBatch(arAll);
      

  5.   

    设置数据集或QUERY的_LockType:=ltbatchoptimistic;用用batchUpdate提交更新