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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。