急!

解决方案 »

  1.   

    使用
    DBGrid.DataSource.DataSet.CachedUpDates:=True;
      

  2.   

    应该显示数据过滤问题!
    这样的话可以考虑用Filter属性
    dbgrid.datasource.dataset.filter:='';
      

  3.   

    AdoDataSet or AdoQuery or AdoTable 的LockType的属性设为ltBatchOptimistic即可!
      

  4.   

    同意楼上:设置缓存,正常的删除语句照写即可!最后cancelupdate
      

  5.   

    同意shengliqiang168(slq),只要你不调用updatebatch,你所做的操作是不会反映到数据库中去的,我就经常这样做的。
      

  6.   

    我用的ADOQUERY,DBGRID怎么办啊!!!!!!
      

  7.   

    用ACCESS也是一样的呀:
    AdoDataSet or AdoQuery or AdoTable 的LockType的属性设为ltBatchOptimistic
    在你删除数据的时候,可以POST,但不要使用UPDATEBATCH函数来提交你所做的修改
      

  8.   

    用AdoDataset,LockType设置为ltBatchOptimistic
      

  9.   

    tyh800220(风林火山) :
      把你的代码贴出来看看!
      

  10.   

    我用ADOQuery2作的DBGRID的数据集,删DBGRID中的数据的代码:self.ADOQuery2.DeleteRecords(arCurrent);
      

  11.   

    AdoQuery2 LockType的属性设为ltBatchOptimistic
    AdoQuery2.Delete就可以了之后不要用updatebatch
      

  12.   

    dbgrid.datasource.dataset.filter:='';
    可以 把不想显示的过滤掉!!
    如果你想 以条以条的删除 那么 就很麻烦了 你必须 每一次顾虑掉 以前选择的纪录了。你看着办吧!!
      

  13.   

    1.DBGrid.DataSource.DataSet.CachedUpDates:=True;
    2.把afterdelete的事件去掉(不提交数据库)
      

  14.   

    1开始事务:adoconnection1.begintrans;
    2对数据库删除操作
    3要不提交的时候:adoconnection1.rollback;
    4想要提交:adoconnection1.committrans;
      

  15.   

    CachedUpDates的属性设为True;
    LockType的属性设为ltBatchOptimistic
    即使用内存更新,只要不使用updatebatch 就不会影响数据库中的数据
      

  16.   

    如果是ADO的话设置LockType的属性设为ltBatchOptimistic你所有的修改在你提交之前是不会传送到数据库的
      

  17.   

    AdoDataSet or AdoQuery or AdoTable 的LockType的属性设为ltBatchOptimistic
      

  18.   

    不管什么数据库,将ADODataset的LockType设置成ltBatchOptimistic这个方法肯定好用,我试验成功!
      

  19.   

    你可以给你的表增加一个字段,字段名为delete,平时为假,当用户要删除时,把这条记录的delete设为真,那么你只要显示delete为真的记录就可以