在DBGrid中输入数据时,当一条记录没有输完,焦点变到其他行了,DBGrid会自动提交数据,由于数据不完整,就会报插入错误信息,不知怎样屏蔽自动提交,等到按保存按钮时再提交。

解决方案 »

  1.   

    DBGrid本身不会提交,是它所关联的DataSet提交的,
    把DataSet设定批处理模式,那么DataSet就不会自动提交,必须手动提交
      

  2.   

    不关DBGRID的事,你用BDE还是ADO,总之用批量提交就行了。
      

  3.   

    首先,你要明确这不是DBGrid自动提交,而是当记录发生移动时数据集会自动地将当前的数据POST。解决这个方法你可以使用缓冲的方法,这样在移动记录时就不会提交数据了。
      

  4.   

    我用的是TDataSource+TADOTable+TADOConnection+TDBGrid形式,不知道设置哪个属性?
      

  5.   

    TADOTable.LockType := ltBatchOptimistic;
      

  6.   

    修改完毕后用
    ADOTable.UpdateBatch;
    提交
      

  7.   

    你可以对dataset设置缓存,这样你提交时一要updatebatch后才能真正存入数据库。post的话,只是存在缓存中。
      

  8.   

    再请教各位,当列设置PickList时,焦点移入后,需要再点击两次才能呈现下拉模式,怎样才能变成焦点移入后自动为下拉模式?
      

  9.   

    windindance(风舞轻扬) 
    学习!