CursorLocation 属性设置为Server端或者编写存储过程

解决方案 »

  1.   

    (随便想想,不一定有用哦)
    在服务器建立两个临时表A和B,
    将查询结果保存在其中的一个表A上
    每次返回这个表A上的“一页”记录,
    并把这些记录存储在另一个表B里。
    向下翻页的时候再次读取这个表A里的“一页”记录,
    并且把这些记录存储到另一个表B里。
    向上翻页相反每次读取表B的后一页记录,
    并把它存储在表A里。下面给出一些相应操作的例子,
    建表(呵呵CREATE就好了)第一次查询初始化
    DELETE FROM [TableA]
    DELETE FROM [TableB]
    INSERT INTO [TableA] SELECT * FROM [Table] WHERE [Field]='Value' ORDER BY [FieldID](读表的一页)
    (得到表)SELECT TOP 50 * FROM [TableA] ORDER BY [FieldID]
    (将表A读出的记录到表B)INSERT INTO [TableB] SELECT TOP 50 * FROM [TableA] ORDER BY [FieldID]
    (删除表A相应项)DELETE FROM [TableA] WHERE [FieldID] IN (SELECT TOP 50 * FROM [TableA] ORDER BY [FieldID])(向上翻页和项下一样,只不过ORDER BY_DESC)或者就是你自己用一个变量做指针,
    每次都读取从指针开始的n条记录,
    不过返回记录集的SQL会难写一点~