Parameters.parambyname('rc_string').Value :=rc_string[1]
SQL参数不可以用在SQL语句外面,你的等号右边有问题

解决方案 »

  1.   

    那我这样写也有问题呀;;   with AdoQuery1  do
       begin
         close;
         sql.Clear ;
         SQL.Add('select A.zbh,A.rcid,B.name  from rc_info A,corp B ');
         SQL.Add('where A.coid like :co_id and A.used_fg=''Y'' and charindex(A.rcid,:rc_str)=0 and A.coid=B.coid');
         //SQL.Add('select rc_info.zbh,rc_info.rcid,corp.name  from rc_info left join corp on rc_info.coid=corp.coid ');
         //SQL.Add('where rc_info.coid like :co_id and rc_info.used_fg=''Y'' and charindex(rc_info.rcid,:rc_str)=0 ');  //
         Parameters.ParamByName('co_id').Value:=coid;
         Parameters.parambyname('rc_str').Value :=rcs[1];   //
         Open;
       end ;
      

  2.   

    现在我测试了一下不用参数而直接用常量sql语句就没有问题:with AdoQuery1  do
       begin
         close;
         sql.Clear ;
         SQL.Add('select A.zbh,A.rcid,B.name  from rc_info A,corp B ');
         SQL.Add('where A.coid like :co_id and A.used_fg=''Y'' and charindex(A.rcid,'''')=0 and A.coid=B.coid');//或者''12345678,aaaaaaa''可以过??
         
         Parameters.ParamByName('co_id').Value:=coid;
         //Parameters.parambyname('rc_str').Value :=rcs[1];   //error
         Open;
       end ;
      
      
     那charindex要用什么变量类型才可以把参数代进去
     现在我定义ics:array[0..200] of string;
    或者ics:string;都不行执行到error行就出错:‘目前应用程序所使用的值的类型不正确’??到底应该怎么来写这个参数????