stext:=edit1.text:
ADOQuery1.Parameters.ParamByName('XX').value:=stext这样系统又报错说我用了不可用数据类型

解决方案 »

  1.   

    应该是XX与stext字段类型不匹配
    把其它代码贴出来看看
      

  2.   


    procedure TB_frmSearchDlg.edtCondChange(Sender:Tobject);
    var
    SText:String;begin
    sText:=(Sender as TEdit).Text;
    if sText='' then Exit;if iSearchType=2 then
       if(iSearchPos=3)or (iSearchPos=4)then sText:='%'+sText+'%'
       else sText:=sText+'%';  with qryClient do begin
      Close ;
      parameters[0].Value:=sText;
      open;  end;
    end;
    ls的我发现你经常回答我问题  你真是个好银啊~~
      

  3.   

    procedure TB_frmSearchDlg.BuildSQL;
    var
    sSql:string;
    beginsSql:=sMainSQL;
    case iSearchPos of
    1:if iSearchType=1 then sSql:=ssql+'cli_code=:clinet'
      else sSql:=sSql+'cli_code like :client';
    2:if iSearchType=1  then  sSql:=ssql+'cli_briefname=:client'
       else ssql:=ssql+'cli_briefname like :client';
    3:if iSearchType=1 then sSql:=ssql+'cli_cname=:client'
        else sSQl:=sSQL+'cli_cname like :client';
    4: if iSearchType=1 then sSql:=SSQL+'cli_cname=:=client'
    else sSql:=ssql+'cli_ename like :client';   end;
       with qryClient do begin
       close;
       sql.Clear;
       sql.Add(ssql);
       Prepared;
       end;end;上面的是参数的定义现在是parameters[0].asstring:=sText不能用啊~~~~parameters[0].Value:=sText又会报错说数据类型不可用~~~~~~如何是好啊~~~~~
      

  4.   

    我肯定其他没问题的  现在就是adoquery的参数类型定义.asstring不能用···不知道怎么办····
      

  5.   

    注意一个地方,iSearchPos不是1,2,3,4的时候,sSql= sMainSQL,所以要看看sMainSQL还有没有参数?
    改成这样赋值试试:
    sql.Add(ssql);
    Parameters.ParamByName('参数1').Value:=值1;
    Parameters.ParamByName('参数2').Value:=值2;
      

  6.   

    sMainSQL是没参数的 只是做为一条主sql语句来配合不同情况下加上ssql,其他是没问题的  我不用ado换成BDE写成ParamByName.asstring 就可以通过编译了,只是我怕以后出现必须用ADO又有这样的赋值情况要怎么办····知道的来说说啊·····parameters.parambyname.asstring:=sText不能用~~~~parameters.parambyname.Value:=sText又会报错说数据类型不可用~~~~~~如何是好啊~~~~~
      

  7.   

    1 先查一下数据库字段的类型
    2 赋值前查一下edit内容是否为空
    3 另外bde和ado的asstring是不同的
      

  8.   

    ado的asstring有些人说可以用有些人说不可以用···我就是不可以的···这是为什么呢···
      

  9.   

    4: if iSearchType=1 then sSql:=SSQL+'cli_cname=:=client'else sSql:=ssql+'cli_ename like :client';
    紅色字體的地方,有這種寫法嗎?
      

  10.   

    让自己搞掂了~~~ado也是可以用~~~so good~~~