当我用多个TADOQuery或者TADOTable连接同一张表时,我用其中的    一个  TADOQuery或者TADOTable对表进行修改后,其他的几个TADOQuery和TADOTable显示和查询的结果还是表被修改前的内容,加Refresh语句也不起作用,非得重切换窗口或者要重运行程序才能显示是的内容!!请各位前辈指点~指点~~要怎样解决.
谢谢~谢谢~

解决方案 »

  1.   

    对只能这样了当你修改数据时;
    加上 adoquery1.active:=false;
         adoquery1.active:=true;
    就可以了;
    refresh是没有用的
      

  2.   

    可我在execSQL之后加上了adoquery1.open却提示错误啊?
      

  3.   

    try
       with datamoduleado.ADOQuery1 do
       begin
         active:=false;   //      false
         sql.Clear;
         sql.Add('insert into book(code,name,author,press,outdate,cost,memo0,num)'+
         'values(:code,:name,:author,:press,:outdate,:cost,:MMEMO,:num)');
         parameters.ParamByName('code').Value :=codeedit.Text ;
         parameters.ParamByName('name').Value :=nameedit.Text ;
         parameters.ParamByName('author').Value :=authoredit.Text ;
         parameters.ParamByName('press').Value :=pressedit.Text ;
         parameters.ParamByName('num').Value :=strtoint(trim(Edit1.Text));
         try
           parameters.ParamByName('outdate').Value :=strtodate(outtimeedit.Text) ;
         except
           messagedlg('参数<出版时间>设置错误',mtError,[mbok],0);
           exit;
         end;
         try
           parameters.ParamByName('cost').Value :=strtofloat(costedit.Text) ;
         except
           messagedlg('参数<价格>设置错误',mtError,[mbok],0);
           exit;
         end;     try
           parameters.ParamByName('MMEMO').Value :=memo1.Text  ;     except
           messagedlg('memo erro',mterror,[mbok],0);
           exit;
         end;     execSQL;
         active:=true;    //true 此处错误
       end;
       Tabsheet1show(sender);
      except
        messagedlg('入库错误',mtError,[mbok],0);
      end;
      

  4.   

    把那句Active:=True;去掉就不会出错了……这个语句是用来打开一个select的数据集的
      

  5.   

    用insert或者update之类的SQL语句只要ExecSQL就OK了
      

  6.   

    我一开始也没要,我的问题是"当我用多个TADOQuery或者TADOTable连接同一张表时,我用其中的    一个  TADOQuery或者TADOTable对表进行修改后,其他的几个TADOQuery和TADOTable显示和查询的结果还是表被修改前的内容,加Refresh语句也不起作用,非得重切换窗口或者要重运行程序才能显示是的内容!!
    "
    似乎有朋友叫我加上试试~~
    各位前辈帮我看看~~
      

  7.   

    Delphi Ado刷新的问题是永远会存在的,
    解决方法。
       1 做定时刷新就行了 
       2 多用Table 少用 Query 如果遇到 一定要用 Query 的
         显示和数据操作用一个Query 如
        with Query1 do begin
          
          sql.add( Insert )
          ExecSQL;
          sql.clear
          sql.add(select)
          open
        end; //with    这样就不存在刷新问题
      

  8.   

    我现在的Query 正常,反而是Table有问题,那我改如何解决呢?
    谢谢~~