用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5737|回复: 13
收起左侧

CI对Microsoft SQL分页支持极差

[复制链接]
发表于 2009-1-12 14:53:51 | 显示全部楼层 |阅读模式
不能正确显示分页结果,谁做过CI的MSSQL分页?谈下经验吧
发表于 2009-1-12 15:48:53 | 显示全部楼层
你的分页怎么做的,MS SQL 不支持limt
发表于 2009-1-12 15:52:20 | 显示全部楼层
同意楼上。。
 楼主| 发表于 2009-1-12 17:11:31 | 显示全部楼层
哦,真的不支持哦,只能用自己的分页插件了,唉
发表于 2009-1-12 21:53:29 | 显示全部楼层
 楼主| 发表于 2009-1-13 02:22:06 | 显示全部楼层
to Hex,还是不行啊,我用的ar
SQL指令是(截取的输出)
DECLARE mi_cursor_ffdb039378876e653e18cb10de5327c0 CURSOR DYNAMIC READ_ONLY FOR SELECT *, birth=datediff(year, birth, getdate()) FROM py_user WHERE (datediff(year,birth,getdate()) between '18' and '35') AND sex = '2' AND marriage = '1' AND grade = 1 ORDER BY id desc OPEN mi_cursor_ffdb039378876e653e18cb10de5327c0 DECLARE @CURSOR AS INT SELECT @CURSOR = CURSOR_HANDLE FROM MASTER.DBO.SYSCURSORS WHERE CURSOR_NAME = 'mi_cursor_ffdb039378876e653e18cb10de5327c0' EXEC SP_CURSORFETCH @CURSOR, 32, 2, 10 EXEC SP_CURSORCLOSE @CURSOR
找不到匹配的数据,本来应该匹配数据库里面100个的列的
然后到SQL再执行上面的命令,显示如下错误:
Msg 615, Level 21, State 1, Line 1
找不到数据库 ID 0,名称 'user_db'。该数据库可能处于离线状态。请等候几分钟,然后重试。
发表于 2009-1-13 10:13:49 | 显示全部楼层
用我提供的方法不行?我以前用是可以的,我测试的是 mssql 2000
 楼主| 发表于 2009-1-13 11:09:17 | 显示全部楼层
我用的2005,但2005兼容2000查询的
发表于 2009-1-13 16:07:10 | 显示全部楼层
2005 那肯定是有些地方不兼容了,你需要重新写那个分页 SQL。实际上就是自己实现一个 MSSQL 版的 limit 子句。
网上方法应该很多吧。
 楼主| 发表于 2009-1-13 22:25:38 | 显示全部楼层
搞定了,唉,麻烦,用的三重SELECT TOP那个方法,
分页类也改了,要不末页的数据不对。。。

本版积分规则