form1.adoquery1.sql.add('select * from table1 where aa>'''+strtoint(edit1.text)'');我想肯定是引号的个数出了问题,这引号到底是怎么分配的?1个跟3个有什么区别?

解决方案 »

  1.   

    2个变1个,成对出现.add('select * from table1 where aa>'''+strtoint(edit1.text)+'''');可以用Quotedstr函数处理.add('select * from table1 where aa>'+Quotedstr(strtoint(edit1.text)));
      

  2.   

    而且strtoint(edit1.text)好像也不对,我在edit1中输入1,点击button按钮,会跳出一个格式转换的错误提示。
      

  3.   

    我试了你上面那条语句,也报错:[Error] Unit1.pas(36): Incompatible types: 'String' and 'Integer'
      

  4.   

    哦,没注意到strtoint,这是错的,不需要转换aa字段是字符类型
    .add('select * from table1 where aa>'''+edit1.text+'''');
    因为要拼接成符合SQL语法,所以就要这么加引号了
    最终语句是这样
    select * from table1 where aa>'Hello'aa字段是数字类型,引号不用,但要判断edit1输入值是数字
    .add('select * from table1 where aa>'+edit1.text);
      

  5.   


    恩,把它去掉就好了。关于那个引号,好像有个记忆秘诀的,我想不起来。你上面的引号分布,是这样配对的吗?('select * from table1 where aa>'''+edit1.text+'''');
      

  6.   

    是这样配对的吗?('select * from table1 where aa>'''+edit1.text+'''');
      

  7.   

    颜色看起来还是不清楚,我再换种颜色:('select * from table1 where aa>'''+edit1.text+'''');