Query2.First;      while not Query2.EOF do
       begin
       TABLE1.First ;
       while not Table1.Eof do
         begin
         if Query2JLBH.Value=Table1JLBH.AsINTEGER THEN
            BEGIN
              Table1.Append;
              Table1 .FieldByName('YHDW').Asstring:=Query2YHDW.AsString;
              Table1 .FieldByName('FLJE').AsCurrency:=Query2FLJE.AsCurrency;
              Table1 .FieldByName('BZ').Asstring:=Query2BZ.AsString;
              Table1 .FieldByName('WLDW').AsString:=Query2WLDW.Asstring;
              Table1 .FieldByName('JLBH').AsINTEGER:=Query2JLBH.AsInteger;            end;          TABLE1.NEXT;
       end;       Query2.Next;     END;
我建立了一临时TABLE 分别用2个Query 用2个查询 给里边填充数据
我的想法是  先将第一个QUERY填充进去后,再填充QUERY2的有个条件  当QUERY2的里记录的JLBH 和QUERY1里相同时   讲QUERY2的记录填充到TABLE里那条记录的后边。
我现在这个办法  只能将数据添加到QUERY1 最后条后边请大家帮帮我  搞了一天了 。

解决方案 »

  1.   

    怎么只有Table1.Append; 没有Table1.Post;
      

  2.   

    不是很明白你的意思你可以在Q2中找到后用Locate在TABLE中查找,若查找后Insert 到TABLE中.
    这样插入的记录就是在你找到的记录之后了
      

  3.   

    Append始终是加入到表的最后边
      

  4.   

    要想插入就用Insert,要想追加就用Append。
    另外最好的办法是给这个临时表Table1用记录编号建一个索引,这就无所谓新记录的存储位置了。
      

  5.   

    加入插入时间,查询的时候加入order by 编号,插入时间
      

  6.   

          Query2.First;
          while not Query2.EOF do
           begin
             if Table1.Locate('JLBH', Query2JLBH.Value,[]) THEN
             BEGIN
               Table1.Append;
               Table1 .FieldByName('YHDW').Asstring:=Query2YHDW.AsString;
               Table1 .FieldByName('FLJE').AsCurrency:=Query2FLJE.AsCurrency;
               Table1 .FieldByName('BZ').Asstring:=Query2BZ.AsString;
               Table1 .FieldByName('WLDW').AsString:=Query2WLDW.Asstring;
               Table1 .FieldByName('JLBH').AsINTEGER:=Query2JLBH.AsInteger;
             end;
           end;
           Query2.Next;
         END;
      

  7.   

    SQL语句
      insert into TestTable
      select * from (TestTable1 inner join TestTable2 on TestTable1.JLBH  = TestTable2.JLBH)