acess做的数据库,两个表xs与cjgl,关键字都是st_nbr.
xs的字段:st_nbr,st_name,st_sex,st_class,st_yx,st_xn这是个学生基本信息表
cjgl的字段:st_nbr,st_name,st_sex,st_class,st_yx,st_xn,math,physical...
而且两个表中的st_nbr,st_name,st_sex,st_class,st_yx,st_xn字段设计是一模一样。
但当往cjgl表中输入st_nbr时,则要把xs.st_nbr=st_nbr的st_name,st_sex,st_class,st_yx,st_xn对应的导入cjgl中去,请问怎么写啊?我在d6中的adoquery1.sql里这样写:
insert into t_dabiao(st_name,st_sex,st_class,st_yx,st_xn) select xs.st_name,xs.st_sex,xs.st_class,xs.st_yx,xs.st_xn from xs where t_.st_nbr=t_dabiao.st_nbr把adoquery1.active=true时却提示说cjgl.st_nbr没有默认值。
这是什么原因啊?谢谢先!

解决方案 »

  1.   

    insert into t_dabiao(st_nbr, stname, st_sex, st_class, st_yx, st_xn)
    select xs.st_nbr.....
      

  2.   

    如果st_nbr是自增字段要先
    set identity_insert off
    然后
    insert into t_dabiao(st_nbr, stname, st_sex, st_class, st_yx, st_xn)
    select xs.st_nbr.....
      

  3.   

    呵呵
    抢分啊
    在没有结果集返回时,不要用OPEN,或者ACTIVE:=TRUE,
    这时一定要用QUERY。EXECSQL;
    不然就会出现你看到的提示
      

  4.   

    蚊蚊,我用你的方法运行时还是提示参数cjgl.st_nbr没有默认值,这是什么原因啊?
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     adoquery1.Close;
     adoquery1.SQL.Clear;
     adoquery1.sql.Text:='insert into cjgl(st_nbr,st_name,st_sex,st_class,st_yx,st_xn) select xs.st_nbr,xs.st_name,xs.st_sex,xs.st_class,xs.st_yx,xs.st_xn from xs where xs.st_nbr=cjgl.st_nbr';
     adoquery1.ExecSQL;
      

  5.   

    这种INSERT写法好象只有SQL2支持,建议使用单元组插入
    INSERT INTO TABLENAME()  VALUES ()