我的数据录入窗口,在上面用多个DBEdit完成数据录入,下面用DBGrid显示、浏览数据,可是当我在录入过程中,鼠标点击DBGrid时,数据就自动保存到数据库了,有什么办法可以去掉这个动作呢?只有当用户点击保存按钮时才保存到数据库。难道DBGrid这个数据感知组件就这样吗?
我在线等待大家的帮助!

解决方案 »

  1.   

    你的数据集组件改成为本地内存表就可以.
    如用ClientDataSet,保存时调用if (ClientDataSet1.ChangeCount > 0) then 
        ClientDataSet1.ApplyUpdates(-1);
      

  2.   

    你在窗体上放一个DataProvider,ClientDataSet它们都在Data Access中,
    你把ClientDataSet的DataProvider设为DataProvider对应的名称.
    再在窗体上放一个AdoQuery把DataProvider中的DataSet设为ADOQuery对应的名称.
    再在AdoQuery中的SQL输入你的SQL语句;
    再在窗体上DataSource组件把它的DataSet设为ClientDataSet的名称,
    再把DBGrid的DataSource设为DataSource组件的名称;
    再把ClientDataSet的Active设为True;
    再放一个 Button到窗体上 Caption为 保存
    在button的click事件中输入if (ClientDataSet1.ChangeCount > 0) then 
        ClientDataSet1.ApplyUpdates(-1);其中ClientDataSet1即为你ClientDataSet组件的名称.
    现在应该知道怎么做了吧,学程序设计人一定要聪明,高手点拨一下就要知道
    怎么去做,低级的问题不要老是问.我不是高手乐意帮助.
      

  3.   

    ========================
    给你一个苯方法
    启用事务 开启事务 dm.ADO.BeginTrans;
     取消更新到数据库 dm.ADO.RollbackTrans;
    把数据更新到数据库dm.ADO.CommitTrans;
      

  4.   

    ado 的LOCK TYPE 属性该为:OPBATCHOPMISTIC,在缓村中更新即可,