Id:='6380';
SQL.Add('Select * From pubs.dbo.sales Where stor_id='''+Id+'''');

解决方案 »

  1.   

    变量是字符型的,另外我不太想用Icebird提供的拼SQL字符串的方式,
    而想用参数.
      

  2.   

    用parambyname('IdParam').asstring:='6380'吧
    保你没错
      

  3.   

    ADOQuery没有 parambyname('IdParam').asstring:='6380' 的方法吧!
      

  4.   

    ADO中参数与BDE的不同,但是BDE程序需要BDE支持,而ADO差不多什么都不用,所以我现在
    转而学ADO,小学了两招:
    begin
        with ADOQuery1 dod
        begin//if Connected:=true;
            Close;
            CommandText:='select * from 表 where 字段=:参数';
            Parameters.ParamByName('参数').Value:='参数值';
            Open;
        end;
    end;
    怎么样,是这样吧,
    不过,ADOQuery还有其它ADO控件不支持:select * from 表 where 字段 like :参数
    但是就是要用,没有办法,只有这样,蠢一点的方法:
       CommandText:='select * from 表 where 字段 >=参1 and 字段<=参2';
       Parameters.ParamByName('参1').Value:='参值';
       Parameters.ParamByName('参2').Value:='参值'+'z';
       Open;
    这样还行吧。
    z应该是大于其它字符,看你需要。
    还有   Parameters.ParamByName('参1').Value 的Value不管是什么类型的都是加:.Value