例如: sql := 'select * from T where a=:a'送参数的时候:
ParamByName('a').AsString := 's';这时他会自动的在字符串上加上引号,SQL就成了 
select * from T where a='s'而我希望他以字符串的方式加进去而不加上''号..
即: select * from T where a=s这要怎么处理?

解决方案 »

  1.   

    不是像你说的这样吧.
    参数赋值要根据你的字段的类型进行转换的.
    比如a字段如果为字符型,你就可以这样:adoquery1.parameters.parambyname('a').value := 'a';
    如果a字段为数字型,你就可以这样:adoquery1.parameters.parambyname('a').value := inttostr(s);
    //这里假设S录入的是'5'之类的.
    一般情况 .value 会帮你转换的.
      

  2.   

    写错了:adoquery1.parameters.parambyname('a').value := inttostr(s); 这里应该
    adoquery1.parameters.parambyname('a').value := strtoint(s);
      

  3.   

    知道他会根据类型自动处理.但那不是我想要的结果.难道我只能直接在SQL里拼,
    没办法以param参数赋值的方式来得到我想要的效果?