工作中有这样一个要求,就是把当前表中的记录添加到另外一个表中去,第一个表的主键是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;
请各位大侠热心帮助!谢谢!
我得代码是这样写的,请大侠帮我看一下,指点一下错误!
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;
请各位大侠热心帮助!谢谢!
试试
给分,结帖了!呵呵!
adquery1.sql.add(format('insert into ccd([题型],[描述],[graphic]) select [题型],[描述],[graphic] from question where Id=%d',[strToint(I)]));//因为I是一个string,所以要转化一下,如果你取出来的是一个integer,就直接写出去了希望能解决你的问题.
告诉你一声,以后少走弯路!呵呵谢谢!
用strtoint()
产生的结果放至format strign中去。。你没有理解我的意思晕。