TQuery:插入一条记录提交后其他有记录会隐藏不见
 
         请问如何解决?!-----------------------
  老问题了,但是我竟然找不到更好的解决方法,菜!  什么原因呢,怎么解决,麻烦你一分钟

解决方案 »

  1.   

    将Query先close再Open就可以了!!
      

  2.   

    因为你插入的记录不合Query SQL 语句。比如说 : select * from table1 where field1 > 0当你插入的记录没有设置field1值或者设置为0
      

  3.   

    插入完记录后,记得将Query重新刷一遍
    例:
    insert into a (a) values ('dd');
    提交后,重新用Query刷table
    select a from a;
    然后提交执行就可以了.
      

  4.   

    可以做个方法过程来实现Query对表的刷新;
    如:
    /*
    Query ---  SQL Tool
    sSQL  ---  Execute SQL
    bOpen ---  true   ==  select
               false  ==  insert、delete、update etc
    */
    procedure QueryOpen(var Query: TQuery; sSQL: string; bOpen: Boolean);
    begin
      with Query do
      begin
        Close;
        SQL.Clear;
        SQL.Add(sSQL);
        Prepare;
        Try
          if bOpen then
            Open
          else
            ExecSQL;
        Except
          On E: Exception do
              ErrorMsg(QueryFailedMsg + '原因是:' + #13#10 + E.Message);
        End;
      end;
    end;
      

  5.   


    我的意思是:  一条新的记录编辑完成之后,我点击其他记录以实现记录滚动,此时TQuery会自动调用Post提交数据(或者我直接Query1.Post来提交),但之后我发现有原来的其中一条数据隐藏不见了;
      
      (数据库中确实保存了该条新增数据,把该程序退出重新打开,所有数据又可重新显示)------------------------------
      

  6.   

    我的意思是:  一条新的记录编辑完成之后,我点击其他记录以实现记录滚动,此时TQuery会自动调用Post提交数据(或者我直接Query1.Post来提交),但之后我发现有原来的其中一条数据隐藏不见了;
      
      (数据库中确实保存了该条新增数据,把该程序退出重新打开,所有数据又可重新显示)-------------------------------------------
    刚学Delphi的时候也碰到这个问题,解决了,但现在又忘了55555
      

  7.   


      TQuery:插入一条记录提交后其他有记录会隐藏不见????
      

  8.   

    先close再Open就可以了!!
      

  9.   

    我以前也遇到过,只需一条语句就可以了:
    adoquery1.refresh;
      

  10.   

    或者用最老的方法:  在提交后在執行語句 select * from table;