我用dbgrid显示adoquery中的数据,允许在dbgrid上直接修改某一个字段field1,但是有限制:field1修改后的值如果 < field2的值,修改无效,仍恢复field1的原值。其中field2为只读。adoquery不是批量更新。
我试了n多方法,包括datasource的datachange, adoquery的beforepost,afterscroll, beforescroll, afteredit等等,都不行。
哪位知道该如何解决这个问题啊?

解决方案 »

  1.   

    beforePost中。
    field1的NewValue于field2比较,如果<就cancel。
      

  2.   

    1、beforePost
    2、ADO当然可以缓存批量更新,看看ADO技术手册的UpdateBatch
      

  3.   

    在beforePost事件中对field1和field2作判断即可
      

  4.   

    可在field1OnChange事件中加入判断OK!
      

  5.   

    建立一个中间变量 直接对dbgrid操作 用fields.asstring,asinteger的那些个属性 将原来的数字付给中间变量,用新的field1和field2比较 大于了就成立 否则用中间变量回复field1