我的那一段如下:
var 
temp1:string;
begin
 adoquery2.Close;
 adoquery2.SQL.clear;
 adoquery2.SQL.Add('select * from car');
 adoquery2.SQL.Add('where 车牌 in (:1)');
 adoquery2.Parameters.ParamByName('1').Value:=temp1;
 adoquery2.Open;
end;temp1为字符串,如果赋一个值的话可以返回结果!!!(如:京A-51896)
但如果多个值运行没有反应!也不报错!!(如:京A-51896,京B-64235)我是新手!请大虾们多多关照!!!!谢谢

解决方案 »

  1.   

    adoquery2.Parameters.ParamByName('1').Value:=quotedstr(temp1);
      

  2.   

    你的做法是又问题的,首先,楼上木瓜的做法也是错误的。
    参数value的类型是Variant类型 这表示的是一个为预制类型。当他进行赋值之后会确定其类型。
    这里我不建议使用参数。你可以直接使用 adoquery2.SQL.Add('where 车牌 in ('+Temp+')');
    如果车牌是字符型的则temp的写法很特别为:temp:='''京A-51896''',''京B-64235'',''...'''
      

  3.   

    试试下面的
    var 
    temp1:string;
    begin
     adoquery2.Close;
     adoquery2.SQL.clear;
     ADoQuery2.sql.text:='Select * from car where 车牌='+''''+temp1+'''';
     adoquery2.Open;
    end; 我都是这样写的
      

  4.   

    adoquery2.SQL.Add('select * from car');
     adoquery2.SQL.Add('where 车牌 in (:1)');
     adoquery2.Parameters.ParamByName('1').Value:=temp1;没明白你要做什么
    temp1要是赋一个值的话,如:京A-51896,就是单条件查询了,当然会有结果
    要是赋多个值,那么temp1中的值就变为:如:京A-51896,京B-64235
    其中 (京A-51896,京B-64235)是一个值,又不是多个值
    你这种做法又不是多条件查询怎么会有结果呢?
      

  5.   

    我是查询在参数中传递的字符串,实现:select * form car 车牌 in ('京A-51896'
    ,'京B-64235');
    用参数实现查询‘京A-51896,京B-64235’怎么实现??
      

  6.   

    sql.add('select * form car 车牌 in ('''+edit1.text+''','''+edit2.text+''')');edit1,和edit2,你可以填车牌查
      

  7.   

    temp为遍历数据库时自动记录的!!
    此时怎么用??
      

  8.   

    var 
      Temp:string;Temp:='''京S-B9527'',''京A-B1234'''';
    adoquery2.SQL.Add('where 车牌 in (''不可能的值'','+Temp+')');
      

  9.   

    var 
      Temp:string;Temp:=Temp+',''京S-B9527'''';//+',''京A-B1234'''';
    adoquery2.SQL.Add('where 车牌 in (''不可能的值'''+Temp+')');//这样的需求是不应该用参数来解决的
    //'不可能的值'是为了解决Temp=''时的情况的