我在ADOQuery的子查询中使用了参数,该怎样传递该参数呢,使用如下报错:
ADOQuery.parameters.ParamByName('SupID').Value := SupID;

解决方案 »

  1.   

    ADOQuery.parameters. ParamValues['SupID'] := SupID;而且可以用多個如
    ADOQuery.parameters. ParamValues['SupID;supid2;supid3'] :=vararrayof([SupID,supid2,supid3]);
      

  2.   

    在参数使用之前要创建该参数:
    如果:
    ADOQuery1.Parameters.CreateParameter('SupID,ftstring,pdinput,10,0);
    ADOQuery1.Parameters.CreateParameter('Supxx,ftstring,pdinput,10,1);
    调用时用:ADOQuery.parameters.ParamByName('0').Value := SupID;
    ADOQuery.parameters.ParamByName('1').Value := Supxx;
      

  3.   

    应该是楼上的意思了,不过还是把sql语句贴出来看看为好。
      

  4.   

    ADOQ.sql.add('insert into table(id,name) values(:id,:name)');
    adoq.parameters.parambyname('id').value:=id;
    adoq.parameters.parambyname('name').value:=name;
    adoq.execsql;
    参照这一个
      

  5.   

    来晚了楼主参照一下楼上的写法用:var定义
      

  6.   

    万一不行也有一个变通的方法.
    ADOQuery1.Parameters[0].Value:=SupID;
    ADOQuery1.Parameters[1].Value:=SupName;