一个adoquery1修改过的记录不能被另一个adoquery2读取,但adoquery2可以读取adoquery1前一条修改的记录,这两个ado都是直接连数据库的,怎么回事?
while not adoquery1.eof do
        begin
          adoquery1.Edit;
          adoquery1.Fields[1].AsString:='uu';
          adoquery1.Post;
          
          with adouery2 do
          begin
           close;
           sql.Clear;
           sql.Add('select * from order_info where   order_id='+''''+adoquery1.Fields[0].AsString+'''');
           open;
           showmessage(fields[1].asstring);//这里显示总是修改前的值
                                          //(不是uu)
          end;
         adoquery1.next;
        end;

解决方案 »

  1.   

    sql.Add('select * from order_info where   order_id='+''''+adoquery1.Fields[0].AsString+'''');
    这一句查询到的不是刚修改的纪录。原因是不是在where语句上呢?
      

  2.   

    adoquery1打开的是同一个表
    netwg() 
    应该是刚修改的记录啊,记录指针还没有移动呢,怎么回事?
      

  3.   

    好像是修改后的记录不能在同一事件中被另一个adoquery读取
    来人帮我看看啊
      

  4.   

    tmp:=adoquery1.Fields[0].AsString;
    ...
    sql.Add('select * from order_info where order_id='''+tmp+'''');
    试试
      

  5.   

    我用的数据库是access,是不是这个原因?
      

  6.   

    感觉好象是记录指针和数据刷新的问题把下面的代码改用SQL语句执行,再试试。
             adoquery1.Edit;
              adoquery1.Fields[1].AsString:='uu';
              adoquery1.Post;另外,想问一下,你这样操作的目的是什么?
      

  7.   

    zfmich() :我不想改变adoquery1的数据集,我做的嵌套,除了用update还有什么其他的办法么?
      

  8.   

    我不想改变adoquery1的数据集?
    这是什么意思呢?是不想让什么改变?
      

  9.   

    就是不想改变adoquery1前一次查询的结果
    如果用update,adoquery1上一条select语句查询的结果就会被清空了啊
      

  10.   

    可能和别的东西有关系。
    我用MS SQL试了,好象没有问题。顺便问一下,ADOQUERY1的语句写的是什么?
      

  11.   

    zfmich() :adoquery1写的是
    select * from order_id 
    c调用oracle也可以的,可能是数据库的原因??