ab.mdb==>query1    cd.mdb==>query2  两个库的结构完全一样 我用ODBC连接了 
begin  
       cmd:='insert  into  cd..dfsdl(M,C,S)  select  M,C,S  from  ab..dfsdl  where  S=0'  ;  
       query2.Close;  
       query2.sql.clear;  
       query2.sql.add(cmd);  
       query2.ExecSQL;  
       query1next;  
end;  
但是插入时报错!还有插入完毕后,如何将S=0改为S=1,然后断开与QUERY2地连接。请高手们指点一下。

解决方案 »

  1.   

    cmd:='insert  into dfsdl(M,C,S)  select  M,C,S  from  dfsdl in "数据库完全路径"  where  S=0';
      

  2.   

    1. ADOConnection1 连到目标数据库cd.mdb 
    2.
    var
      sql: String;
    begin
      sql := 'insert into dfsdl(M,C,S)  select M, C, ''1''  '
      + ' from dfsdl in ''ab:\B.mdb'' where s = ''0''';
      ADOConnection1.Connected := True;
      ADOConnection1.Execute(sql);
    end;
      

  3.   

    rockswj(石头,我要学Sql)兄:由于CD.mdb库设置成独占,现在的问题是,我插入数据以后,由于我的程序还跟cd.mdb连接着,其他程序就不能打开该库,那我该怎么样才能断开与该库的连接呢?还有如何将S=0改为S=1?谢谢大哥!
      

  4.   

    还有如何将S=0改为S=1?
    --
    cmd:='insert  into  cd..dfsdl(M,C,S)  select  M,C,1  from  ab..dfsdl  where  S=0'  ;
      

  5.   

    另外一种方式就用 
    query1.edit;
    query1.FieldByName('aaa').AsString := query2.FieldByName('aaa').AsString ;
    query1.next;
    query2.next;
    query1.post;