代码:
 strsql:='insert into Information (fhh,hynumber,name,sex,major,zzmm,csny,whcd,sfz,dwzw,jzh,'
           +'cx,zd,sj,syjl,address)'
           +' values('+char(39)+vzhuchuang.wwyfh+char(39)+','+char(39)+trim(hyzh.Text)+char(39)
           +','+char(39)+trim(name.Text )+char(39)+','+char(39)+trim(sex.Text )+char(39)
           +','+char(39)+trim(major.Text )+char(39)+','+char(39)+trim(zzmm.Text )+char(39)
           +','+char(39)+trim(csny.Text )+char(39)+','+char(39)+trim(whcd.Text )+char(39)
           +','+char(39)+trim(sfzh.Text )+char(39)+','+char(39)+trim(dwzw.Text )+char(39)
           +','+char(39)+trim(jszh.Text )+char(39)+','+char(39)+trim(zjcx.Text )+char(39)
           +','+char(39)+trim(zhdian.Text )+char(39)+','+char(39)+trim(sj.Text )+char(39)
           +','+char(39)+trim(syjl.Text )+char(39)+','+char(39)+trim(jtzz.Text )+char(39)+')';
    datamodule.DataModule1.ADOhylr.SQL.Clear;
    datamodule.DataModule1.ADOhylr.SQL.Add (strsql);
    datamodule.DataModule1.ADOhylr.ExecSQL ;
    datamodule.DataModule1.ADOhylr.Active :=false;
    datamodule.DataModule1.ADOhylr.Active :=true;
其中只有hynumber是关键字段,当我插入数据时这个字段没有添加重复的值,但到保存时却提示交“违反了什么什么规定,不能插入重复键”,我没有定义关系。为什么,请高手指点。

解决方案 »

  1.   

    datamodule.DataModule1.ADOhylr.Active :=true;
    把这个去掉
      

  2.   

    如果hynumber自增关键字,不能给它赋值
      

  3.   

    datamodule.DataModule1.ADOhylr.SQL.Add (strsql);
        datamodule.DataModule1.ADOhylr.ExecSQL ;
        datamodule.DataModule1.ADOhylr.Active :=false;
        datamodule.DataModule1.ADOhylr.Active :=true;//多余
    中也有一个错误,insert 不能用Active :=true;只能用ExecSQL ;
      

  4.   

    回复人: fei19790920(饭桶的马甲) ( ) 信誉:99  2004-07-05 15:47:00  得分: 0  
     
     
       为什么插入不进去?没对准吧
      
     
    是乱插!!
      

  5.   

    datamodule.DataModule1.ADOhylr.Active :=false;
        datamodule.DataModule1.ADOhylr.SQL.Clear;
        datamodule.DataModule1.ADOhylr.SQL.Add (strsql);
    datamodule.DataModule1.ADOhylr.Active :=true;
        datamodule.DataModule1.ADOhylr.ExecSQL ;
      

  6.   

    要是不要那句datamodule.DataModule1.ADOhylr.Active :=true;//多余
    我怎么刷新数据库?
      

  7.   

    如果还是不行,把    datamodule.DataModule1.ADOhylr.Active :=true;   去掉试试
      

  8.   

    datamodule.DataModule1.ADOhylr.Active :=true;   去掉试试
    那我怎么刷新数据库呀?
      

  9.   

    datamodule.DataModule1.ADOhylr.SQL.Clear;
        datamodule.DataModule1.ADOhylr.SQL.Add (select * from Information);
    datamodule.DataModule1.ADOhylr.Active :=true;