好象local sql功能有限得很,估计用SQL实现不了。自己编程序吧

解决方案 »

  1.   

    你说要遍历是吧。那就循环呀
    效率低点,行吗,很多方法呀,
    我现在  只写这些了
    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from table');
    try
    query1.open;
    excpet
    query1.execsql;
    end;
    for i:=1 to query1.recordcount do//开始遍历TABLE1
      begin
        query2.close;
        query2.sql.clear;
        query2.sql.add('select * from table where pk_field like :p');
        query2.parambyname('p').asstring:=query1.fieldbyname('pk_field');
        try
        query2.open;
        except
        query2.execsql;
        end;
        if query2.recordcount=1 then //TABLE2和TABLE1有重复记录
          begin
            query3.close;
            query3.sql.clear;
            query3.sql.add('update table2 set .......');
            query3.parmabyname..........
            query3.execsql;
         end
       else      ///TABLE2和TABLE1没有重复记录
           begin
            query3.close;
            query3.sql.clear;
            query3.sql.add('insert into table2 values........');
            query3.parabyname............
            query3.execsql;
           end;
        query1.next;
    end;
      

  2.   

    table 的编号没有写
    忘了,你自己看吧,
    不好意思,有问题,
    可以讨论
      

  3.   

    to byrybye(BYRY):
    感谢你的参与,不过这种方法可以说是最没有效率的一种办法,用一条SQL语句实现是最好的,我半年前还在原来那家公司干的时候,用SQL Server实现过,使用Exists..else的语法,只不过现在真是记不得怎么写的了,要真没办法,也只好用这种笨方法了。呵呵up