其实和Client/Server的SQL数据库的查询方式有关, Local文件型数据库查询
时是将所有记录都查询出来, 这样你在下一不操作前就可取得记录条目数,
自然可以定滚动条的各种属性值. Grid的滚动条自然就平滑了.
server端数据查询时只会将当前已查询出来的数据传送出来, 你此时并不知道
到底有多少条记录符合条件, 可能是10, 100,1000条,
只有到全部记录传送到客户端后, 你才可能知道数据集究竟有多少条记录,(这样
做要花费大量时间).
可能我说的并不清楚, 打个比方:
一次 select * from table1 where A> 1 的记录条目数有许多,
SQL server 先查询出一部份记录来传送, 如 200条, (此数在客户端可以设定.)
你此时在客户端的grid中只看到一部份, 你不断的向下浏览, 当快浏览完200条后
客户端会向server请求下一部分数据集, (再查询传送下一组200条),
...如此这样....直到查询完毕.
这样的工作模式, 客户端无法在没有查询完毕时, 内取得结果记录数的总和,
也就无法设定滚动条.
Grid控件处理垂直滚动条的过程中, 对Local文件型数据集和Client/Server SQL数据
集的处理方式是不一样的, 对Local文件型数据库, 取数据总和当前记录的位置来设定
滚动条, 对于SQL Server数据集时, 取三种状态:
BOF : 拉子放于顶部;
Not BOF and Not EOF : 中间;
EOF : 底部.
这就是SQL server数据集在Grid 中滚动条移动不光滑的原因.