select a1, a2... into #temptable from table1 where ....

解决方案 »

  1.   

    如果不是SQl表,似乎不支持 insert into table select a1,a1 ... from ...?
    不行就一条一条的写吧 :)
      

  2.   

    如果连insert, select这种标准sql语句都不支持,
    那还要用TQuery干什么?
      

  3.   

    local SQL支持insert into,但我的关键问题是query里那些lookup和计算字段不能用sql处理!
    如果不用SQL,还有什么好办法?
      

  4.   

    当然可以!
    例: query1里有lookup和计算字段.
        另起一个query2.
        query2的sql为: insert into table values(:a1, :a2, ...:aN)
        程序中: Query2.ParamByName('a1').AsString := Query1.FieldByName('a1').AsString;
               Query2.ParamByName('a2').AsString := Query1.FieldByName('a2').AsString;
               ......
               Query2.ParamByName('aN').AsString := Query1.FieldByName('aN').AsString;
               Query2.ExecSQL;That's Ok!
      

  5.   

    使用TBATCHMOVE也可以.所创建的新表要和QUERY的格式符合.表和TTABLE连.
    把TBATCHMOVE的SOURCE设为QUERY,DESTINATION(类似,目的的意思)属性设为ttable 就可以了.tiger的方法在数据量少的时候用起来很好,在数据量大的时候可能有速度的问题.