ADOConnection1.Connected :=true;
if ADOConnection1.Connected then
begin
    for i:=0 to 11 do
    for j:=0 to 7 do
    begin
       ADOQuery1.Close;
       ADOQuery1.SQL.Clear ;
       ADOQuery1.SQL.Add('insert into 事故追忆表(ID,记录列表,记录通道名称,记录通道单位,记录通道号)');
       ADOQuery1.SQL.Add('values(IDNumber,RecList,RecName,RecUnits,RecNumber)');                                 ADOQuery1.Parameters.ParamValues['IDNumber']:=i*8+j;    ADOQuery1.Parameters.ParamValues                                                              ['RecList']:=FaultFileReportRec.RecInfoStrList[i][j];
       ADOQuery1.Parameters.ParamValues   ['RecName']:=FaultFileReportRec.RecChannelName[i][j];
           ADOQuery1.Parameters.ParamValues['RecUnits']:=FaultFileReportRec.RecChannelUnits[i][j];
           ADOQuery1.Parameters.ParamValues['RecNumber']:=strtoint(FaultFileReportRec.RecChannelNum[i][j]);
           ADOQuery1.ExecSQL ;
  end;
  end;
  ADOQuery1.Close;
  ADOConnection1.Connected :=false;程序运行时,怎么会出现 ADOQuery1 : parameter "IDNumber" not found 的提示
我连接的数据库是sql server2000 里的一个数据库表

解决方案 »

  1.   

    ADOQuery1.SQL.Add('values(:IDNumber,:RecList,:RecName,:RecUnits,:RecNumber)');
      

  2.   

    ADOQuery1.SQL.Add('value(:IDNumber,:RecList,:RecName,:RecUnits,:RecNumber)');
      

  3.   

    加完后,还是出现呀
    是不是 这句有问题
       ADOQuery1.Parameters.ParamValues['IDNumber']:=i*8+j;
      

  4.   

    你试试这样给参数赋值:
    Parameters.ParamByName('IDNumber').value:= ...
      

  5.   

    (:IDNumber,:RecList,:RecName,:RecUnits,:RecNumber)检查一下字段顺序是否有误,如果还错,把错误贴出来
      

  6.   

    我未试过在循环语句里执行
        ADOQuery1.ExecSQL ;
    不知道会不会有问题?还望楼主成功后讲讲经验!
      

  7.   

    若是未升级的DELPHI5.0可能会有这种问题哦!(ADO)
      

  8.   

    通常DELPHI没有问题,而是我们自己搞错了:-)
      

  9.   

    我用的是delphi6
    原话:
      Project wgl800.exe raise exception class EdatabaseError with message 'ADOQuery1:
    prarmeter 'IDNumber' not found process stopped ,use step or run to continue;  IDNumber,RecList,RecName,RecUnits,RecNumber 这几个是我自己第一一些变量,这样做对不对?
      

  10.   

    试试:
    ADOConnection1.Connected :=true;
    if ADOConnection1.Connected then
    begin
        for i:=0 to 11 do
        for j:=0 to 7 do
        begin
           ADOQuery1.Close;
           ADOQuery1.SQL.Clear ;
           ADOQuery1.SQL.Add('insert into 事故追忆表(ID,记录列表,记录通道名称,记录通道单位,记录通道号)');
           ADOQuery1.SQL.Add('values(:IDNumber,:RecList,::RecName,:RecUnits,:RecNumber)');                                 ADOQuery1.Parameters.ParamValues['IDNumber'].asfloat:=i*8+j;    ADOQuery1.Parameters.ParamValues                                                              ['RecList'].asfloat:=FaultFileReportRec.RecInfoStrList[i][j];
           ADOQuery1.Parameters.ParamValues   ['RecName'].asfloat:=FaultFileReportRec.RecChannelName[i][j];
               ADOQuery1.Parameters.ParamValues['RecUnits'].asfloat:=FaultFileReportRec.RecChannelUnits[i][j];
               ADOQuery1.Parameters.ParamValues['RecNumber'].asfloat:=strtoint(FaultFileReportRec.RecChannelNum[i][j]);
               ADOQuery1.ExecSQL ;
      end;
      end;
      ADOQuery1.Close;
      ADOConnection1.Connected :=false;
      

  11.   

    怎么老说是IDNumber没有呀
    这是我自己定义的,好像在其他用*.mdb数据库可以用呀
      

  12.   

    出现 ADOQuery1 : parameter "IDNumber" not found 的提示的原因:
    1、SQL语句本身无参数;
    2、ADOQuery1的ParamCheck属性为False;
    3、未设置ADOQuery1的Connection或ConnectionString属性。
      

  13.   

    在ADOQuery1.SQL.Add('values:IDNumber,:RecList,::RecName,:RecUnits,:RecNumber)');                    
    后加一行 ADOQuery1.Parameters.refresh;看看。