下面语句中要求在xg1.db中满足“名次”(字符型,但都是数字)中大于10的记录,运行时出错,请问我应该怎么写,谢谢!!
  query1.close;
  query1.sql.clear;
  query1.sql.add('select * from xg1');
  query1.sql.add(' where '+strtoint(名次)>10);
  query1.open;

解决方案 »

  1.   

    query1.sql.clear;
    query1.sql.add('select * from xg1');
    query1.sql.add(' where "'+strtoint(名次)+'>10');
    query1.open;
      

  2.   

    strtoint(名次)这样把字符串转化成数字怎么可以和字符串相加呢
    用IntToStr(名次)吧
      

  3.   

    query1.sql.clear;
    query1.sql.add('select * from xg1');
    query1.sql.add(' where "'+名次+'>10');
    query1.open;
      

  4.   

    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from xg1');
    query1.sql.add(' where cast(名次 as int)>10');
    query1.open;
      

  5.   

    query1.sql.clear;
    query1.sql.add('select * from xg1');
    query1.sql.add(' where  '''+strtoint(名次)+'''>10');
    query1.open;
      

  6.   

    哥们可以这样
    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from xg1');
    query1.sql.add(' where cast(名次 as int)>10');
    query1.open;
      

  7.   

    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from xg1');
    query1.sql.add(' where 名次>''10''');
    query1.open;
      

  8.   

    建议: 不要用字符串来比较,
    除非你的名次字段9在数据库存储时是09要不然, 呵呵, '9'>'10'还是'9'<'10'?还是转换成数值。
      

  9.   

    总觉得“名次”有些问题。
    哥们有没有搞错????
    strtoint(名次)是字段名???
    再说,如果strtoint(名次)是5的话,
    5>10 ???????
      

  10.   

    名次的字段名是什么?MC?db文件有中文字段名吗?
    设名次的字段名是Aquery1.close;
    query1.sql.clear;
    query1.sql.add('select * from xg1');
    query1.sql.add(format(' where cast (a as int)>10');
    query1.open;试试吧,包你满意