我现在有个查询:Select A.emp_name,A.emp_sex,B.dep_name 
               from emp_info A,Dep_info B
               Where A.Dep_no=B.Dep_no 
现在我想只直接更新 EMP_INFO表
  AdoQuery.fieldbyname('Emp_name').Value := 'xxyx';
  AdoQuery.fieldbyname('Emp_sex').Value := '1';
  AdoQuery.Post;
可他要更新DEP_INFO表,怎么办?

解决方案 »

  1.   

    AdoQuery.SQL.Add('UPDATE emp_info SET emp_info=''xxyx'',emp_sex=''1'' WHERE Dep_no in (SELECT A.Dep_no FROM emp_info A,Dep_info B WHERE A.Dep_no=B.Dep_no )');
      

  2.   

    adoquery.close;
    adoquery.clear;
    adoquery.add('select * from emp');
    adoquery.open;
      

  3.   

    with query do begin
    close;
    sql.text:='Select A.emp_name as aname,A.emp_sex as asex,B.dep_name as bname 
                   from emp_info A,Dep_info B
                   Where A.Dep_no=B.Dep_no'
    open;
    edit;
    fieldbyname('Aname').Value := 'xxyx';
    fieldbyname('sex').Value := '1';
    post;
      

  4.   

    var 
      sql_txt:='update Emp_info set emp_Name='''xxx''',emp_sex='''yyy''' from emp_info A
                inner join Dep_info B
                   Where A.Dep_no=B.Dep_no '