现在table1里面有三栏,其中一个为编号,一个为产地,一个为性能,table2中有两栏,一个为编号,一个为产地,现在我想把table1中编号为 00的产地添加到对应的table2中编号为00的产地栏中,也就是值的传递,想知道怎么实现?就是为对应的值的实现,还有就是应该在什么中执行就会把所有的对应的值都传递过去,是buttonclick中还是dbgridCellClick中?

解决方案 »

  1.   

    是buttonclick中还是dbgridCellClick中?
    --//都可以
    直接用SQL查询到,插入就OK
      

  2.   

    最好是在dbgridCellClick。
    因为在点击空白处时也会响应buttonclick,这是我们所不希望的。
      

  3.   

    不需要用循环的,这样会浪费机时和增加数据库的操作,用一句SQL就可以实现的.
    insert into tab2 (产地) select * from tab1 where tab1.产地=tab2.产地
      

  4.   

    实现这个功能,可以用表格选择行的方式,等选择好要添加的内容后,再点击添加按钮就可以一次添加到另外的表中,
    添加数据是通过数据集的append,post的功能实现的,
      不过看你说的好像是要修改另外一个表的内容啊,不是要添加.因为talbe2已经有了编号字段,只能是修改
    大概的思路:点击第一个表相应的行获取相应的编号,产地,这个容易吧
      id:=adotable1.fieldbyname('id').value id是你的表中的编号字段,不是这里的id
      address:=adotable.fieldbyname('addr').value
     
      然后修改第二表对应编号的产地,这里用sql语句实现怕是好一些
      with adoquery1 do
      begin
      sql.clear;
      sql.add('update table2 set addres=''+address+'' where id=''+id+''');注意参数的引号
      execsql;
      end;
      然后刷新talbe2,就应该看到结果,最好是双击单元格的事件里好一些
      
      

  5.   

    不需要这个"是buttonclick中还是dbgridCellClick中?"直接用sql语句就可以实现了,类似"insert   into   tab2   (产地)   select   *   from   tab1   where   tab1.产地=tab2.产地"