你没有创建DATASOUER控件,DBGRID是通过DATASOUER连上RECORDSET的

解决方案 »

  1.   

    到这里看看吧,也许对你有用
    http://www.csdn.net/expert/topic/638/638880.xml?temp=.2018854
      

  2.   

    http://www.csdn.net/expert/topic/561/561951.xml?temp=.4635736
      

  3.   

    看下面这是向下分页取数据的,晚上刚刚把向上分页搞定,向下分页简单点
    向上难一点点.向下
    SELECT TOP 100 <PrimaryKey> FROM Table1
    WHERE <PrimaryKey> > <本页分页标记>
    ORDER BY <PrimaryKey>向上,给个思路给你。 设一个上页分页标记,先降序,取出前你要的记录数, 然后再升序。 搞定看下面, 这思路我问人家花掉300分SELECT TOP <每页记录数> <PrimaryKey>FROM Table1 WHERE <PrimaryKey> IN (
      SELECT TOP <每页记录数> <PrimaryKey> FROM Table1
      WHERE <PrimaryKey> <= <上一页分页标记>
      ORDER BY <PrimaryKey> DESC
    )
    ORDER BY <PrimaryKey>我晚上搞了一晚, 刚刚通过,太兴奋了。以前我把所有数据都显示出来, 这样软件速度慢极了。 现在快多了。
      

  4.   

    向下
    SELECT TOP 100 <PrimaryKey> FROM Table1
    WHERE <PrimaryKey> > <本页分页标记>
    ORDER BY <PrimaryKey>
    那我来告诉你吧 <PrimaryKey> 是一个键, 比如说编号 bh, 编号须是排序的。0-3000吧
    首先你取出table1表的第一条记录。 存放到一个变量里头,
    var
    tmplb:string;
    beginadotable1.first;
    TMPlb:=ADOTable1.Fields.FieldByName('bh').AsString;   // 这里取到的是第一条记录也就是值bh=0的记录送到tmplb变量里
    select top 100 * from  table1
    where bh>TMPlb //这里是你定义的分页标记,   where bh>0  
    ORDER BY bhend;
    点击下一页时,就取出第100条记录的值送于tmplb, select top 100 * from  table1
    where bh>TMPlb //这里是你定义的分页标记,   where bh>100  
    ORDER BY bh
    这样你取的是100-200做个循环不就成了
      

  5.   

    dbgrid分页不如用 
    listview。。先open所有,在分页加到listview中,虽然有性能问题
      

  6.   

    谁能给我源码看看
    [email protected]