我的一段代码如下:
   adoquery2.SQL.Clear;
   adoquery2.SQL.Add('update project set nssj=:a,nssjl=:b,wsss=:c where pname=:d');
   adoquery2.Parameters[0].Value:=nsss-nssd;
   adoquery2.Parameters[1].Value:=(nsss-nssd) / nsss;
   adoquery2.Parameters[2].Value:=nsss;
   adoquery2.Parameters[3].Value:=trim(dbedit1.Text);
   adoquery2.ExecSQL;
// nsss nssd都是double型返回的错误是 “至少一个参数没有被指定值” 很是莫名????
大家帮忙看一下

解决方案 »

  1.   

    adoquery2.Parameters.parambyname("a").Value:=nsss-nssd;
    依次类推。
      

  2.   

    adoquery2是不是在属性中已经设置了参数了?
      

  3.   

    把你的ADOQUERY2删除掉,然后重新放一个上去。。
      

  4.   

    将ADOQUERY2的Connection断开后再连接试一下
      

  5.   

    用adoquery2.Parameters.parambyname("a").Value ....
    这样不容易错.
      

  6.   

    是不是因为没有把表关闭
       adoquery2.close;
       adoquery2.SQL.Clear;
       adoquery2.SQL.Add('update project set nssj=:a,nssjl=:b,wsss=:c where pname=:d');
       adoquery2.Parameters[0].Value:=nsss-nssd;
       adoquery2.Parameters[1].Value:=(nsss-nssd) / nsss;
       adoquery2.Parameters[2].Value:=nsss;
       adoquery2.Parameters[3].Value:=trim(dbedit1.Text);
       adoquery2.ExecSQL;
      

  7.   

    菜鸟发问: adoquery2.SQL.Add('update project set nssj=:a,nssjl=:b,wsss=:c where pname=:d');
    为什么要写成 类似“=:a” ?
    SQL不是”=@a”吗? 望解答,谢谢这样可以不? 
    adoquery2.SQL.Add('update project set nssj='+a+',nssjl='+b+',wsss='+c+' where pname='+d');另外, adoquery2.Parameters[3].Value:=trim(dbedit1.Text);变成string型了
      

  8.   

    adoquery2.close;
       adoquery2.SQL.Clear;
       adoquery2.SQL.Add('update project set nssj=:a,nssjl=:b,wsss=:c where pname=:d');
       adoquery2.Parameters.Clear;
       adoquery2.Parameters.refresh;
       adoquery2.Parameters[0].Value:=nsss-nssd;
       adoquery2.Parameters[1].Value:=(nsss-nssd) / nsss;
       adoquery2.Parameters[2].Value:=nsss;
       adoquery2.Parameters[3].Value:=trim(dbedit1.Text);
       adoquery2.ExecSQL;
      

  9.   

    adoquery2.close;
       adoquery2.SQL.Clear;
       adoquery2.SQL.Add('update project set nssj=:a,nssjl=:b,wsss=:c where pname=:d');
       adoquery2.Prepared := True; //<----加上这句话试试看
       adoquery2.Parameters[0].Value:=nsss-nssd;
       adoquery2.Parameters[1].Value:=(nsss-nssd) / nsss;
       adoquery2.Parameters[2].Value:=nsss;
       adoquery2.Parameters[3].Value:=trim(dbedit1.Text);
       adoquery2.ExecSQL;
      

  10.   

    菜鸟发问: adoquery2.SQL.Add('update project set nssj=:a,nssjl=:b,wsss=:c where pname=:d');
    为什么要写成 类似“=:a” ?
    SQL不是”=@a”吗? 望解答,谢谢这样可以不? 
    adoquery2.SQL.Add('update project set nssj='+a+',nssjl='+b+',wsss='+c+' where pname='+d');另外, adoquery2.Parameters[3].Value:=trim(dbedit1.Text);变成string型了