AdoQuery.Edit ;
AdoQuery.FieldByName('是否已发送').AsString :='是';
AdoQuery.FieldByName('发送时间').AsDateTime:=Date();
AdoQuery.Post ;执行以上操作,没有错误,而且在对应的DBGrid 上也显示了我修改过后的数据,可是在最后居然没有没有改动数据库中的数据我想这可能是设置了某个属性导致的,请问哪位有碰到过这种现象吗?请多多指点好吗?

解决方案 »

  1.   

    你的AdoQuery处在BatchUpdate模式,必须调用AdoQuery.UpdateBatch()才能完成更新。
    你可以取消BatchUpdate模式,或者干脆新建一个AdoQuery使用它有默认属性。
      

  2.   

    在前面加一条:
    adoquery1.prepared:=true;
    或直接设为TRUE就行了.
      

  3.   

    我也认为你的数据集ADOQuery是处在批处理状态同意楼上观点:
    “你的AdoQuery处在BatchUpdate模式,必须调用AdoQuery.UpdateBatch()才能完成更新。
    你可以取消BatchUpdate模式,或者干脆新建一个AdoQuery使用它有默认属性。
      

  4.   

    AdoQuery处在BatchUpdate模式时
    AdoQuery.Post只是将改变存在内存中
    AdoQuery.UpdateBatch()才会提交到数据库