请问如何控制DBGrid1的状态,不知大家发现这样一个问题没有,就是在应用DBGrid1时,
你如果不设DBGrid1的readonly属性为true,那你可以修改一条纪录后滚动DBGrid1的纪录后,你不进行提交操作,它仍然把修改结果提交数据库了。不知这个问题怎样解决?
我是先设置DBGrid1的readonly属性为True,再在修改按钮事件下:ADOTable1.ReadOnly:=False;
ADOTable1.Edit;
在提交按钮事件下:ADOTable1.Post;
                 ADOTable1.ReadOnly:=true;
但是在键完修改按钮后,DBGrid仍然处于非编辑状态,请这问题怎样解决?另外一种解决方案是根据情况随时设置DBGrid的状态,但是我不是很清楚,还望大家帮忙!
再次感谢!

解决方案 »

  1.   

    不需要这样的. 你设置dbgrid的数据源控件的locktype属性就可以了.
    例如: 你的数据源控年是adoDataSet控件,你设它的lockType属性为ltBatchOptimistic
    那这样在你没有调用adodataSet.updateBatch方法之前,你对dbgrid所做的任何操作都不会真正的对数据库有何改动的.
      

  2.   

    设定DBGrid.DataSource.DataSet的更新属性为缓存更新,这样就不会每次修改后都提交的
      

  3.   

    动态设置DBGrid的ReadOnly状态,经常不管用,所以不建议用。
    你可以试试设置数据集的ReadOnly属性试试
    再不行你就设置每个字段的ReadOnly属性,这样我试过行的,不过如果你字段多就不太合适
      

  4.   

    那我用的是ADOTable组件,可不可以控制?
      

  5.   

    IwantFlay(我很爱她!!!!!!!!!!) , 奥,我发现ADOTable也可以控制.
    littleflowerfox(花狐貂) 你所说的方法具体怎样实现?
    谢谢你们了!