存储过程我要 把表1的内容 随机ID 查出  插入表2中  代码如下  可查出表1来了  插入不到表2里面去  用的控件是storedProc 
 参数是 jihuaid 
begin
    select count(VCORPTRAINCOURSEREC_ID)from VCORPTRAINCOURSEREC
       where  VCORPTRAINCOURSEREC_ID=:jihuaid into :VCORPTRAINCOURSEREC_ID;
    if(VCORPTRAINCOURSEREC_ID>0)then
    begin
         num=gen_id(VCORPTRAINCOURSEREC_2_gen,1);
         insert into VCORPTRAINCOURSEREC_2(VCORPTRAINCOURSEREC_ID,DEPARTMENTNOID,TRAINCLASS_NO,YEAR_NO,MONTH_NO,COURSE,OBJECTIVE,AUDIENCE,TRAIN_DATE,
                 DURATION,PLACE,METHODS,TRAINER,FOLACTION,PERSON_TOTAL,OVERDATE,COURCE_NO,KESHI,
                 BEIZHU,ZHUTI)
         values(:num,:DEPARTMENTNOID,:TRAINCLASS_NO,:YEAR_NO,:MONTH_NO,:COURSE,:OBJECTIVE,:AUDIENCE,:TRAIN_DATE,
                 :DURATION,:PLACE,:METHODS,:TRAINER,:FOLACTION,:PERSON_TOTAL,:OVERDATE,:COURCE_NO,:KESHI,
                 :BEIZHU,:ZHUTI);         select  DEPARTMENTNOID,TRAINCLASS_NO,YEAR_NO,MONTH_NO,COURSE,OBJECTIVE,AUDIENCE,TRAIN_DATE,
                 DURATION,PLACE,METHODS,TRAINER,FOLACTION,PERSON_TOTAL,OVERDATE,COURCE_NO,KESHI,
                 BEIZHU,ZHUTI from VCORPTRAINCOURSEREC where VCORPTRAINCOURSEREC_ID=:jihuaid
                 into :DEPARTMENTNOID,:TRAINCLASS_NO,:YEAR_NO,:MONTH_NO,:COURSE,:OBJECTIVE,:AUDIENCE,:TRAIN_DATE,
                 :DURATION,:PLACE,:METHODS,:TRAINER,:FOLACTION,:PERSON_TOTAL,:OVERDATE,:COURCE_NO,:KESHI,
                 :BEIZHU,:ZHUTI;
    end
end

写的那有错误啊??
执行过程代码是
if(jihuaid>0)then
  begin
    with DatamodPersonClass.JIHUA_DAORU do
    begin
      close;
      params[0].AsInteger:=jihuaid;
       ExecProc;
       prepare;
       DatamodPersonClass.open_Q_TRAINDANGAN;
      showmessage('实施导入完毕');
    end
  end
 else showmessage('未导入');