工作中有这样一个要求,就是把当前表中的记录添加到另外一个表中去,第一个表的主键是ID(是一个自动编号),另外一个表的主键也是ID也是一个自动编号,两个表没有什么联系!请问代码应该怎么写?
我得代码是这样写的,请大侠帮我看一下,指点一下错误!
procedure TForm1.ToolButton21Click(Sender: TObject);
var
//不知道自动编号是什么数据类型,个人感觉应该是Integer,但是编译的时候老
//提示ID是一个String,我用Access建立数据库的时候也是长整型
//不明白!
I : string;
begin
//获取当前记录的自动编号
I :=adoquery1.Fields [0].AsString;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into ccd(题型,描述,graphic)');
adoquery1.SQL.Add('  select 题型,描述,graphic from question');
//问题就出在下面一句,把这一句注释就可以运行,但是添加的是Question表中
//的全部记录,这样不行的说  :(  !!!!
adoquery1.SQL.Add('  where ID = '''+I+'''');
adoquery1.ExecSQL ;
end;
请各位大侠热心帮助!谢谢!

解决方案 »

  1.   

    adoquery1.SQL.Add('  where [ID] = ' + I );
      

  2.   

    adoquery1.SQL.Add('  where ID = '+I);
    试试
      

  3.   

    谢谢,现在可以确定是String,呵呵,谢谢所有的兄弟,尤其是2、3楼的兄弟!呵呵!
    给分,结帖了!呵呵!
      

  4.   

    试试这个
    adquery1.sql.add(format('insert into ccd([题型],[描述],[graphic]) select [题型],[描述],[graphic] from question where Id=%d',[strToint(I)]));//因为I是一个string,所以要转化一下,如果你取出来的是一个integer,就直接写出去了希望能解决你的问题.
      

  5.   

    楼上的兄弟,你的方法不行的,SQL不能用random,inttostr,strtoint,等一类的函数,
    告诉你一声,以后少走弯路!呵呵谢谢!
      

  6.   

    楼主我想你是没有看清我写的语句。我用的是format()
    用strtoint()
    产生的结果放至format strign中去。。你没有理解我的意思晕。