对DBGrid中的一行编辑完后,DBGrid会将这行的更新自动写入到数据库中去,这时我还想定义一些自己的操作,该怎么办?还有,行更新结束时DBGrid会不会产生事件?是哪个事件?

解决方案 »

  1.   

    你说的事件要到DBGRID相联系的DATASET中去找,如:ADOTABLE, ADOQUERY那些。
      

  2.   

    程序对数据库的操作都是通过数据集控件实现的,DBGRID只是用来编辑数据的,所以你要多看看数据集控件的方法,属性,事件很强的。
      

  3.   

    1.设其DataSet如ADOQuery1之LockType为ltBatchOptimistic可实现批量更新,操作完后用ADOQuery1.UpdateBatch()才会写入数据库;
    2.行更新结束时的事件啊,不好控制,试试其DataSet的AfterPost事件
      

  4.   

    如果是TQuery就修改属性CacheUpdate = True
    zhe
      

  5.   

    用BDE访问的话,使用  Query,ClientDataSet,DataSetProvider 等连接
       数据库<--Query1.DataBase<--DataSetProvider.DataSet<--ClientDataSet.Provider<--DataSource<--DBGrid,  
       样的话只要没有执行ClientDataSet.ApplyUpdate(0) 数据就不会存到数据库中.
                       ClientDataSet.CancelUpdate,则返回到修改前的状态.
      

  6.   

    这种事件可以在与 DBGrid 相连的 Query 里面做,试试 AfterPost
      

  7.   

    谢谢各位的建议
    可能是我没说清楚,大家对我的问题有些误解
    我是想在对任意一行编辑完后执行一些自定义的操作,比如一行编辑完后用户将行焦点定位到另一行时,DBGrid就会更新DataSet,这时我想进行一些另外的操作。
    急呀!!!各位大虾帮帮忙啊
      

  8.   

    你试一下在 Query 里 AfterScroll 事件去处理。 (当行改变时就会触发这件事件)