奇怪,SQL语句加了order by就不能moveprevious了?
SQL Server数据库,
select * from table1
游标移动正常,但如果查询语句加了order by:
select * from table1 order by id
MovePrevious就失败,报“在此环境中不允许操作”,游标类型adOpenKeyset和adOpenDynamic都试过了。
[解决办法]
是不是从小到大拍的,那样的话,第一个得前边好像没有
[解决办法]
你是ado方式吗?我用ado方式,没有这个问题
[解决办法]
没有碰到这个问题。
[解决办法]
用客户端游标时一下
conn-> CursorLocation=adUseClient;
rs-> CursorLocation=adUseClient;
[解决办法]
把代码出来看一下。
[解决办法]
你的意思是table1 本来没有主键的,然后你设置主键为ID以后
MovePrevious 就好用了??
[解决办法]
如果在ID上添加索引的话,不是主键,MovePrevious会有这样的问题吗?
[解决办法]
效率问题
SQL Server在你用一个没有索引的动态query中move游标的时候,会重新建立一次表,运算很复杂,所以干脆就不让你这么做了。
[解决办法]
偶认为,是因为没有任何索引的话,ado(还是数据库啊)无法定位你所指定的记录,因为他无法识别到底所谓的前一个是哪个……
[解决办法]
晕。。那movefirst又怎么可以???