请教一下各位,我想将多表查询到的结果显示到dbgrid中,当我点击某行时,把查询到的结果中的部分字段保存到另外一张表中,这个能不能实现?,该怎么实现?

解决方案 »

  1.   

    select *  from AA a 
    left join BB b on a.id=b.id
    where .....select * intert into Text from AA a 
    left join BB b on a.id=b.id
    where .....
      

  2.   

    你只想要把点到的这行的部分字段转到一个表中啊?
    还是想要全部dbgrid中的全部结果转到另一个表中?首先你在查询结果前,先把这个结果保存再一个临时表中,select a.xxx as 学号,b.www as  班级,c.yyy as 成绩  into #tmp1 from table1 a left join table2 b on a.field1=b.field1
    left join table3 on c on a.field2=c.field2 where .....上边这个sql语句是先把查询结果保存到一个临时表#tmp1中,
    然后再用一个adoquery从临时表tmp1再查出这个结果显示在dbgrid 中select * from #tmp1然后下面来讨论最上面的两种情况,当是第二种的时候,
    就这样
    帮你顶 select 成绩  
      

  3.   

    不小心点了发送。
    继续。
    insert into table4 select 学好,成绩 from #tmp1   就可以把查询结果(整个dbgrid全部的行)中的部分字段,学号,成绩
    插入到另一个表table4中了。如果你只想插入你选中的那行,
    那可以这样,先定一个变量
    var
    tmpxh:string;tmpxh:=dbgrid.fields[0].value.Asstring;然后insert into table4 select 学号,成绩 from #tmp1  where 学号='''+tmpxh+'''
    就可以把这条被选中的行的部分字段插入到 table4中
      

  4.   

    var
    tmpxh:string;
    上面的定义为这个窗体的全局变量。tmpxh:=dbgrid.fields[0].value.Asstring;
    这句代码要写在 dbgrid的单击事件中。