肯定是类型不匹配问题,你好好看看ics的值是什么??

解决方案 »

  1.   

    用这个来试试:
    SQL.Text := Format('select zbh,rcid from rc_info where charindex(rcid, %s)=0 ', [ics]);
      

  2.   

    用ADOquery 有这毛病,
    同样的代码用query就没毛病
    说明在用参数:ParamStr时,ADO
    不是这样用的,与BDE有区别,
    自己看看问题在哪,别钻牛角尖
    换个法子,CommandText是干啥用的
    或......我没试过,呵呵,只是说说
      

  3.   

    设置 :rc_string参数的类型为 ftString  (Date Type)
      

  4.   

    好了不过还是想不明白:下面语句通过了
       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 A.coid=B.coid ');
         Sql.Add('and charindex(A.rcid,'''+F_ofdoors_add_edit.combobox4.Items.CommaText+''')=0');
         Parameters.ParamByName('co_id').Value:=coid;
         Open;
       end ;
    我在测试时这样:
       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 A.coid=B.coid ');
         Sql.Add('and charindex(A.rcid,'+'''aaaaaaaa'''+')=0');
         Parameters.ParamByName('co_id').Value:=coid;
         Open;
       end ;
    可是不知道怎么回事,这样却不行??不知道为什么   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 A.coid=B.coid ');
         Sql.Add('and charindex(A.rcid,:rc_string)=0');
         Parameters.ParamByName('co_id').Value:=coid;
         Parameters.ParamByName('rc_string').Value:='''aaaaaaaa''';
         Open;
       end ;
      

  5.   

    Sql.Add('and charindex(A.rcid,'+'''aaaaaaaa'''+')=0');行输入错了。。
     Sql.Add('and charindex(A.rcid,'''+'aaaaaaaa'+''')=0');