[2.0.2]MSSQL 分页方法(limit)
在 MSSQL 数据库驱动中,“_limit”函数无效,所以要修改“mssql_driver.php”这个文件。修改文件“system/database/drivers/mssql/mssql_driver.php”中的“_limit”函数为:function _limit($sql, $limit, $offset)
{
$cursorName = 'mi_cursor_'.md5(strtolower($sql));
$sql = "DECLARE ".$cursorName." CURSOR DYNAMIC READ_ONLY FOR
".$sql."
OPEN ".$cursorName."
DECLARE @CURSOR AS INT
SELECT @CURSOR = CURSOR_HANDLE FROMMASTER.DBO.SYSCURSORS
WHERE CURSOR_NAME = '".$cursorName."'
EXEC SP_CURSORFETCH @CURSOR, 32, ".($offset+1).", ".$limit."
EXEC SP_CURSORCLOSE @CURSOR";
return $sql;
} 只要修改这一个函数就可以了吗? 是的,你试试吧,反正我这里没问题。 能讲讲这几句代码的意思吗?谢谢
我把代码加上去了,好像没起任何作用。还有其他地方要做修改吗? 不可能没作用吧,你看看修改的地方对吗,还有你的模型写的对吗?看看分页教程? 模型写的应该是正确的,可以获得数据,只是没有分页,而是全部显示 你在数据库查询里,用 limit() 这个函数了吗?
还是你自己手写的 SQL 语句?
MSSQL 分页问题主要是由于 MSSQL 没有 limit 这个东西。
不知道你那个是不是这个问题呢? 我用的是MSSQL数据库,SQL语句如下:
SELECT Staff_ID, Staff_Name, Official_Name, Title, Brief FROM Staff_Brief Order By Staff_ID
我应该在什么地方调用Limit函数呢?能给个例子吗?谢谢先 哦!你没用 Active Record 啊!那你就得自己写 SQL 了,我给你的代码就没用了,如果你用 AR 写就可以分页了。 能给个用AR的DEMON吗?