dbgrid所指的主要是看你的dbgrid.datasource是指的哪一个表
如果你查询的记录不是setrange中
可以先解除了范围指定再查询

解决方案 »

  1.   

    老鱼,偶的意识是
    dbgrid-->datasource-->table1(setrange……
    dagrid-->datasource-->query1 (select……
    现在,
    偶把datasource指向table1,那么,所得结果不符合查询所制定的条件
    偶把datasource指向query1,那么,所得结果超出了setrange的范围
    也就是说,table的setrange与query的条件查询
    反映在dbgrid里,只能是其一,而不是经过setrange后,被查询出来的结果例如:表  
    序号  姓名   学历   年龄
    ……table的索引:序号
    setrange(开始序号,截止序号)
    query的sql:
    select * from db where 学历=:学历那么
    dbgrid-->datasource-->?呢
    实际操作表明:
    如果指向table,那么结果就是所有(开始序号,截止序号)中间的纪录
    如果指向query,那么结果就是所有符合学历条件的纪录,不管他在不在开始,截至的序号间问题就在这里,