PWMIS.Core/SqlUtil/SQLPage.cs
(开头部分) 26KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/*
* ========================================================================
* Copyright(c) 2006-2010 PWMIS, All Rights Reserved.
* Welcom use the PDF.NET (PWMIS Data Process Framework).
* See more information,Please goto http://www.pwmis.com/sqlmap
* ========================================================================
* 该类的作用
*
* 作者:邓太华 时间:2008-10-12
* 版本:V5.1
*
* 修改者: 时间:2013-3-5
* 修改说明:Oracle分页的一个问题,少一条记录(网友大大宝发现)
*
* 修改者: 时间:2014-5-6
* 修改说明:Oracle分页的时候,使用strWhereUpper 来判断,避免大写问题,
* Oracle 对的大写的字段有不同的意义(网友大大宝发现)
*
* ========================================================================
*/
//**************************************************************************
// 文 件 名: BFService
// 用 途: SQL SERVER 分页处理程序
// 创 建 人: 邓太华
// 创建日期: 2006.7.26
// 版 本 号: V4.6.2.0411
// 修改记录: 邓太华 2008.3.30 修改了额外查询(对@@Where条件的支持)可能引起的Bug
// 邓太华 2013.3.26 修改使用SqlServer、Access 等SQL语句中使用
// Distinct 分页的问题
// 网友[左眼] 2013.4.11 修复MySQL分页大于1页之后的问题
//**************************************************************************
/*简单查询分页方案 算法说明
* SQL SERVER :
* 如果有这样简单的查询语句:
* SELECT SelectFields FROM TABLE @@Where ORDER BY OrderFields DESC
* 那么分页方案可以采用下面的方式:
*
* 第一页:
* SELECT TOP @@PageSize SelectFields FROM TABLE @@Where ORDER BY OrderFields DESC;
* 中间页:
* SELECT Top @@PageSize * FROM
(SELECT Top @@PageSize * FROM
(
SELECT Top @@Page_Size_Number
SelectFields FROM TABLE @@Where ORDER BY OrderFields DESC
) P_T0 ORDER BY OrderFields ASC
) P_T1 ORDER BY OrderFields DESC
* 最后页:
* SELECT * FROM (
Select Top @@LeftSize
SelectFields FROM TABLE @@Where ORDER BY OrderFields ASC
) ORDER BY OrderFields DESC
* 函数 MakePageSQLStringByDBNAME 在此基础上实现了更为复杂的分页处理,这里的复杂时说查询
* 包含大量的子查询或者连接查询,因此评价查询复杂与否采用下面的标准:
*
* 只包含一个 SELECT 谓词;
* 没有 INNER JOIN,RIGHT JOIN,LEFT JOIN 等表连接谓词;
* 谓词 FROM 后只能有一个表名;
后面还有 558 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
