使用Adoquery查找,有一个数据库,其中有起始编号和终止编号两个字段,现在要查找一个编号,如果这个编号大于等于起始编号并且小于等于终止编号,就显示这个记录。起始编号和终止编号之间是一段数,要查找的数在那段数之间就显示那个记录

解决方案 »

  1.   

    select id from talbe order by id利用locate函数定位到要找的id,判断RecNo的数值和1,和recordcount的数值就可以了
      

  2.   

    或者把最大和最小直存起来,然后比较,关于显示楼主可以通过过滤(构件带的)
    filter='????'来达到目的
      

  3.   

    To:snake_eye(★蛇眼★上帝派来灌水的人) 
    你可能理解错了,起始编号和终止编号在每个记录都有,它们之间是一个数据段,是理论上的,没有显出来
    查找:比方:有记录的起始编号:34455,终止编号:44334,现在查找一个数:35665,它在这两个数之间,我查出来的结果就是这条记录
      

  4.   

    select * from table 
    where (startid>=id) and (endid<=id)
      

  5.   

    select * from table 
    where (起始编号>=id) and (终止编号<=id)
      

  6.   

    晕,
    select * from table 
    where (起始编号<=id) and (终止编号>=id)
      

  7.   

    我要查找的写在一个Edit里面,怎么比较起始编号和Edit。text等
      

  8.   

    我需要的where条件是来自Edit的,我在语句是这么写的:
    Adoquery1.sql.add('select * from table (where field >= Edit1.text)')
    我想可能是field >= Edit1.text的错误,请问这种情况应该怎么表示出Edit1.text的内容
      

  9.   

    大喊什么, Adoquery1.sql.add('select * from table (where field >= Edit1.text)')
                                                                    ^^^^^^^^^^^起码你也得这样写 Format('select * from table where field > %s', [Edit1.Text]);
      

  10.   

    with ADOQuery do
    begin
      SQL.Clear;
      SQL.Add('select * from table where (起始编号<=:id) and (终止编号>=:id)');
      Parameters.ParamValues['id']:=Edit1.Text;
      Open;
    end;
      

  11.   

    select * from table 
    where (终止编号>=id) and (起始编号<=id)
      

  12.   

    with ADOQuery do
     Begin
       Close;
       SQL.Clear;
       SQL.Add('Select * from table');
       Open;
        If (FieldbyName('起始编号').AsString<=Trim(Edit1.text)) And
            (FieldbyName('终止编号').AsString>=Trim(Edit1.text)) then
          Begin
              显示这条记录;
          End
          Else
          Begin
              不显示;
              Close;
          End;
     End;