如果有两个表,
一个表中有两个字段(宽,高)整型
别一个字段有一个规格 字符型
如何将一个表中的宽,高加上其它组合成一个字符型字段插入到另一张表中
例如
  T1中的记录为宽=300,高=600
  插入到T2中
   T2的记录中规格=300*600
     请大家指教

解决方案 »

  1.   

    这个方法!
    首先比如你第一个表中字段名称为:name,width,height
    第二个表中的字段名称为:name,size
    前提是保证表(1)中一个name对应表(2)中相应name!
    可以先定义3个变量
    n:string;//name
    a,b:integer;//width,height
    c:string;//size
    //从表(1)中取出值
    with adoquery1 do
    begin
      sql.clear;
      sql.add('select * from table1 where name=:name1');
      parameters.parambyname('name1').value=:'k';//取出名字为k的记录的长,宽
      open;
      name:=fieldbyname('name').asstring;
      a:=fieldbyname('width').asinteger;
      b:=fieldbyname('height').asinteger;
      c:=inttostr(a)+'*'+inttostr(b);//得到规格c的值
    end;//把C的值插入表(2)进去
    with adoquery1 do
    begin
      sql.clear;
      sql.add('insert into table2(name,size)values(:name,:size)');
      parameters.parambyname('name').value=:n;
      parameters.parambyname('size').value=:c;
      execsql;
    end;
      

  2.   

    其实没必要那么复杂,可以用一个query和一个sql语句就可以搞定,但是那个sql语句怎样写我忘记了
    上面的语句是我临时写的,没在delphi中测试
    有问题吗?
      

  3.   

    加入有两个表 结构如下:
    A(AID,Width,Height)  B(BID,Result)
    insert into B(BID,Result) select AID,Width*Height from A
      

  4.   

    to:kshape()
     谢谢:你的方法应该没有问题,但因为我有N条记录插入,有时量很大,如晨通过循环来依次插入效率太低,所以我想要的是一个SQL语句,执行一次就能搞掂的方法,麻烦你想起来指教我
      谢谢
    to:hatum
      如果RESULT也是数值型,如象是对的,但我的RESULT字段是字符型,我试一试
      谢谢
      

  5.   

    找到数据库的int to str 函数(下面假设函数为convert(int)以及两字符转相连的函数(下面假设为compact(str1, str2)):
    insert into B(BID,Result) select AID,compact(compact(convert(Width), '*'), convert(Height)) from A;至于是什么函数,就要看是什么数据库了。。
      

  6.   

    TO:imacih() 解决了,谢谢,结贴