我不想在焦点离开数据显示控件dbedit1 的时候程序自动地隐式调用post,我需要在点击保存按钮的时候再post,因为我还有个“取消”按钮,如果让程序隐式调用post ,则我无法调用数据集控件的cancel功能了。
有办法吗?
另:数据集控件的Cursor type这个属性有什么用的?

解决方案 »

  1.   

    那么你可以用数据集的缓存的机制的啊
    adoquery的locktype属性的ltbatch...什么的
    只有你updatebatch才会提交的post是没有用的否则就是不提交的
      

  2.   

    具体做法是这样的:
    adoquery.cursorlocation为cluseclient
    adoquwry.cursortype:clstatic
    adoquery.locktype:ltbatchoptimistic当你增加记录是,只是在DBGRID中显示,不会提交到SQL中的,只要调用updatebatch()才会提交;取消是调用cancelbatch()
      

  3.   

    我不想在焦点离开数据显示控件dbedit1 的时候程序自动地隐式调用post
    >>>>我觉得你可能用到了dbgrid的 你看着数据是插入了 但是实际上你此时关闭窗体的话 数据并没有提交的 你还是要post的要不然的话 数据依然是没有提交的
      

  4.   

    dbgrid和dbedit都用到了。
    有两个dbedit,分别属于两个adotable,修改一个dbedit后,再修改另一个dbedit,这样第一个dbedit已经自动post 了,我已经试过,dbedit中的数据已经自动提交了。