使用Query.Delete;
发现数据库中的记录没有被删除,
使用Query.Post;
发现记录没有被修改,请问是为什么阿?谢谢

解决方案 »

  1.   

    首先需把你的Query组件的CachedUpdate属性设置为True才行。
      

  2.   

    如果是ADOQuery没有CachedUpdate属性怎么办?谢谢
      

  3.   

    我会用Table的  行不行呀?
      

  4.   

    在数据库中有一个参照完整性,要是同样的信息在几张表中都有的话,就删不掉。
    Post 是提交  不是修改
      

  5.   

    Dephie6.0 + Access
       ADOConnetion -> ADOQuery -> Datasource -> DBGrid很多的DBEdit,在加上button处理
    修改的按钮代码如下
    procedure TReportForm.btAddModifyClick(Sender: TObject);
    begin
        Query.Post;
    end;
      

  6.   

    干嘛不用SQL?使用简单功能强大
      

  7.   

    你把这个query删除了,换一个,一切都为默认值,
      

  8.   

    dacong(free),你好,我把conn,datasource,query都删过了,
    发现可以删除记录了,但是修改记录的时候还是有错误,
    说"Query:dataset not in edit or insert mode."
      

  9.   

    在Post前加入判断
        if ADOQuery1.State= dsEdit then AdoQuery1.Post
      

  10.   

    我上面已经告诉你要先将QUERY置为EDIT状态了
    procedure TReportForm.btAddModifyClick(Sender: TObject);
    begin
        Query.edit;
        Query.Post;
    end;
      

  11.   

    xxmmmx(踢踏) ,你好,我加了判断了,还是不行Query的属性我修改了一些东西:
    1、SQL添加了一些默认SQL语句,
    2、lock type : ltBatchOptimistic
    3、Active : True
    其他的真的没有改了阿
      

  12.   

    bee2518(真棒),你好
    我已经添加过Query.edit;这一句了,没有效果!还是老样子!
    我对天发誓阿
      

  13.   

    在你修改数据之前要先把写上Query.edit
    新增数据前:
    Query.Append
    修改数据前
    Query.edit
    保存数据
    if ADOQuery1.State= dsEdit then AdoQuery1.Post
      

  14.   

    我靠,终于发现是什么问题了!!
    气死掉了~~
    原来DBGrid的Readonly竟然是true,刚才改了就好了,谢谢各位,散分咯:P
      

  15.   

    昨天睡觉的时候感觉不对,原来是我说错了
    应该是DBEdit的Readonly是true导致的这个错误:P
          ~~~~~~