我在Access数据库中一个字段为整数,如F_LSNo, 我用ADOQUERY查找,在2个EDIT框里输入数值。比如3 和5 ,需要查找3=<F_LSNo<=5之间所有的记录 ,这样的语句怎么写  

解决方案 »

  1.   

    sql='select * from table where F_LSNo <=' + strtoint(edit1.text) +' and ' F_LSNo >=' + strtoint(edit2.text)
      

  2.   

    我这样写了  不能编译通过啊 好像不支持strtoint
      

  3.   

    [Error] OLHUnit.pas(237): Incompatible types: 'String' and 'Integer'
      

  4.   

    [Error] OLHUnit.pas(240): Incompatible types
    出现这两个出错  一直想不到办法 怎么实现 那个操作  大家帮帮忙  谢谢
      

  5.   

    sql='select * from table where F_LSNo  <=' + strToint(edit1.text) +' and  F_LSNo >=' + strToint(edit2.text)+';'应该没错啊~
      

  6.   

    ADOQuery1.SQL.Text:='select * from table where F_LSNo  <=''' + strToint(edit1.text) +''' and  F_LSNo >=''' + strToint(edit2.text)+'''';
      

  7.   

    我就是这样写的 可是编译的时候就出现我上面发的两条错误信息 编译不通过,我也不知道怎么回事 我在想是不是因为ADOQuery.SOL.ADD() 里面是字符串 而在这里把edit1.text变为整数 所以就不能编译,所以不知道怎么弄了
      

  8.   


    ADOQuery1.SQL.Text:='select * from table where F_LSNo  <='' + strToint(edit1.text) +'' and  F_LSNo >='' + strToint(edit2.text)+''';
    这个是!!!
      

  9.   


    ADOQuery1.SQL.Text:='select * from table where F_LSNo <='+QuotedStr(edit1.text)+' and  F_LSNo >=' + QuotedStr(edit2.text); 
      

  10.   


    var a:integer,b:integer;
    begin
    ……
    a:=StrToInt(edit1.text);
    b:=StrToInt(edit2.text);
    ……
    ADOQuery1.SQL.Text:='Select * from table where F_LSNo>=a and F_LSNo<=b'
      

  11.   

    show.message(SQL.text)看一下就清楚啦
      

  12.   

    用QuotedStr 以后 能编译了 但是运行的时候 出现 ‘标准表达式中数据类型不匹配’的错误 ,我在Access中F_LSNo 是数字类型。 如果我把F_LSNo 改成文本类型 edit1.text 也不用转化 但是查询出来的不是想要的结果 本来就 3 到6 之间的数  但是因为是字符 把F_LSNo = 35也算进去了  
      

  13.   

    with adoquery1 do
    begin
      close;
      sql.text := * from table where F_LSNo >=:F_LSNO1 and F_LSNO<=:F_LSNO2';
      Parameters.parambyname('F_LSNO1').value := edit1.text;
      Parameters.parambyname('F_LSNO2').value := edit2.text;
      Open;
    end;
      

  14.   

    adoquery1.close;
    adoquery1.sql=Format('select * from table where F_LSNo<=%s and F_LSNo >=%s',[edit1.text,edit2.text]);
    adoquery1.open;
      

  15.   

    var a:integer,b:integer; 
    begin 
    …… 
    a:=StrToInt(edit1.text); 
    b:=StrToInt(edit2.text); 
    …… 
    ADOQuery1.SQL.Text:='Select * from table where F_LSNo>=a and F_LSNo <=b'这中方法我也试过 出现 ‘参数不足 期待是2’错误  
      

  16.   

    { SQl里面是符串的,为什么要加strToint? }
    { 直接这样就行了 }
    ADOQuery1.SQL.Text:='select * from table where F_LSNo  <=''' + edit1.text +''' and  F_LSNo >='''+ edit2.text+'''';
    { 或者像 12楼--IT民工 那样: }ADOQuery1.SQL.Text:='select * from table where F_LSNo <='+QuotedStr(edit1.text)+' and  F_LSNo >=' + QuotedStr(edit2.text);
      

  17.   

    真的非常感谢大家。用那个Format 终于可以了。回复一下用QuotedStr 这样的 也是出现编译错误。 还有要用数字类型是因为数据库里那个字段是数字类型的。
    顺便问一下,对于初学者,大家有没有好的书籍推荐一下。再次谢谢
      

  18.   

    http://download.csdn.net/source/406410 精品课件 
    http://download.csdn.net/source/410558 入门+语法 
    有了上面两个 学习delphi 只要肯学 
    一个周就搞定了!!! 祝你成功~~~
      

  19.   

    令with adoquery1 do 
    begin 
      close; 
      sql.text := * from table where F_LSNo >=:F_LSNO1 and F_LSNO <=:F_LSNO2'; 
      Parameters.parambyname('F_LSNO1').value := edit1.text; 
      Parameters.parambyname('F_LSNO2').value := edit2.text; 
      Open; 
    end;这种方法在我的程序里编译通过可执行我想要的结果。
      

  20.   

    ***************************************************************************   思想决定行动,交流产生力量。  
    程序员在深圳QQ群大集   专业分类:   
    程序员在深圳JAVA群4247660   
    程序员在深圳c++群15195967   
    程序员在深圳.NET群Ⅱ:12203296   
    程序员在深圳TCP/IP协议栈开发:16956462   
    程序员在深圳JS & AJAX群:12578377   
    程序员在深圳英语学习群:23864353   
    深序员在深圳VB:11055959   
    程序员在深圳c++Ⅱ17409451   
    程序员在深圳c++群15195967   
    程序员在深圳嵌入式开发群37489763   
    程序员在深圳移动开发群31501597   
    程序员在深圳创业群33653422   不限专业分类:   
    高级群:17538442   
    第三群:2650485   
    第二群:7120862   
    第五群:29537639   
    第四群:28702746   
    第六群:10590618   
    第七群:10543585   
    第八群:12006492   
    第九群:19063074   
    第十群:2883885   
    第十一群:25460595   
    第十二群:9663807   深圳程序员QQ群联盟成立两年多,拥有三十个以上的QQ群,人数达两千多人,有30%以上的成员的经验丰富  的老手,包括国内外顶级大公司的成员(如微软、IBM,SUN,华为)、国内著名高校和研究院成员,和有  丰富实践经验的高级程序(包括参加过上亿元的项目的架构师),有很热爱技术的成员(包括自己写过嵌入  式操作系统),还有少数女程序员。  现推介如下QQ群,如有兴趣速速加入:深程高级群:17538442(此群不欢迎新手,已经在深圳工作的,月薪  6K以下的不欢迎)c++:15195967 .NET:12203296 mobile:31501597嵌入式:37489763 JAVA:4247660     
    ——————————————————————————————————————————    
    希望大家不要认为群能给你送来什么,这只是一个平台,让同等水平的程序员有个交流的机会或许能得到  一点信息或许能带来一点启发。  
    有人说常聊QQ的人肯定技术不怎么样,但其实很多技术高朋友不需要做一些简单的重复劳动所以还是有  时间聊天的。   *****************************************************************************