sqlPS= "select * From Employee Left JOIN Department ON Employee.DepartmentID=Department.DepartmentID Order By Employee.DepartmentID,Employee.EmNO "
call GetPage_RSDT(sqlPS,con,intListCount, "PageControl ", "EmID ", "frmList ",rsPS)
'|ResultPageRS(Sql串,连接,每页行数,页号,过滤字段,表单名,)
function GetPage_RSDT(strSqlText,objConn,intPageSize,PageControl,KeyID, strFormName, Ref_RS)
set Rsdt=Server.CreateObject( "ADODB.Recordset ")
if IsNumeric(PageControl) then
intPageIndex = PageControl
CurrentPage = "PageControl "
else
CurrentPage = PageControl
intPageIndex = Trim(Request(PageControl))
if IsNumeric(intPageIndex) then
if intPageIndex <= 0 then intPageIndex = 1
else
intPageIndex = 1
end if
end ifdim strSql,strPageOut,intAll,intNot,intPos,intOrder,intWhere
RsTotalCount = dbCount(strSqlText,objConn)
strSql = Trim(strSqlText)
intPos_Select = instr(1,strSql, "select ",1) + 6
'response.Write(Left(strSql,6)) & "|
"
'response.Write(Left(strSql,7)) & "|
"
'response.Write( "| "& mid(strSql,7)) & "|
"
'response.Write( "| "& mid(strSql,8)) & "|
"
'response.End
strSql_1 = Left(strSql,intPos_Select) '|取出 select
strSql_2 = Mid(strSql,intPos_Select+1) '|取出 select 之后的内容
intPos = InStr(UCase(strSql_2), " FROM ") '|取出表单
intWhere = InStr(UCase(strSql_2), " WHERE ") '|取出条件
intOrder = InStr(UCase(strSql_2), " ORDER ") '|取出排序 Sql_7strSql_6 = left(strSql_2,intOrder)
if intOrder > 0 then
strSql_7 = mid(strSql_2,intOrder)
strSql_2 = strSql_6
end if
'|Response.Write(strSql_7 & "
")
if intWhere > 0 then
strSql_2 = left(strSql_2,intWhere+6) & "( " & mid(strSql_2,intWhere+7) & ") " '|重载变量
end ifintAll = cint(intPageIndex) * cint(intPageSize)
intNot = cint(intPageIndex - 1) * cint(intPageSize)strSql_3 = " Top " & cint(intPageSize) & " "
strSql_4 = " Top " & intNot & " "if intWhere > 0 then
strSql_5 = " AND (( " & KeyID & " NOT IN ( " & strSql_1 & strSql_4 & " " & KeyID & " " & mid(strSql_2,intPos) & " " & strSql_7 & "))) "
else
strSql_5 = " WHERE (( " & KeyID & " NOT IN ( " & strSql_1 & strSql_4 & " " & KeyID & " " & mid(strSql_2,intPos) & " " & strSql_7 & "))) "
end if'response.Write(strSql_1 & "
") '|select
'response.Write(strSql_3 & "
") '|Top 4
'response.Write(strSql_2 & "
") '|源SQL * - Where ..
'response.Write(strSql_5 & "
") '|附加 where
'response.Write(strSql_7 & "
") '|Order bystrSql = strSql_1 & strSql_3 & strSql_2 & strSql_5 & strSql_7
'| Response.Write(strSql) '| "SELECT TOP 9 * FROM Manager WHERE (ID NOT IN (SELECT TOP 2 ID FROM Manager)) "
'response.Write strSql
'||response.EndRsdt.Open strSql,con,1,1
if TypeName(Ref_RS) = "Recordset " then set Ref_RS = Rsdtcall getPageControl(intPageIndex,intPageSize,RsTotalCount,strFormName,CurrentPage)
'Rsdt.Close()
'set Rsdt = nothing
End function
'方法二
记录集(startPage+pageSize)-记录集(startPage)
我没有用IN,是觉得这样性能可能高些.
declare @pagesize int
declare @startpage int
declare @sql varchar(4000)
set @startpage=30
set @pagesize=10set @sql= 'select ee.* from (select top '+ convert(varchar,@pagesize+@startpage) + ' aa.* from t4 aa) ee where
not exists(select ff.* from (select top '+convert(varchar,@startpage) + ' bb.SID from t4 bb) ff where ee.SID=ff.SID) 'exec(@sql)
'方法三
高效的分页存储过程
摘自CSDN
CREATE PROCEDURE PAGINATION
@tblName varchar(255),
@strGetFields varchar(1000) = '* ',
@fldName varchar(255)= ' ',
@PageSize int = 10,
@PageIndex int = 1,
@doCount bit = 0,
@OrderType bit = 0,
@strWhere varchar(1500) = ' '
AS
declare @strSQL varchar(5000)
declare @strTmp varchar(110)
declare @strOrder varchar(400)
if @doCount != 0
begin
if @strWhere != ' '
set @strSQL = 'select count(*) as Total from [ ' + @tblName + '] where '+@strWhere
else
set @strSQL = 'select count(*) as Total from [ ' + @tblName + '] '
end
else
begin
if @OrderType != 0
begin
set @strTmp = ' <(select min '
set @strOrder = ' order by [ ' + @fldName + '] desc '
end
else
begin
set @strTmp = '> (select max '
set @strOrder = ' order by [ ' + @fldName + '] asc '
end
if @PageIndex = 1
begin
if @strWhere != ' '
set @strSQL = 'select top ' + str(@PageSize) + ' '+@strGetFields+ ' from [ ' + @tblName + '] where ' + @strWhere + ' ' + @strOrder
else
set @strSQL = 'select top ' + str(@PageSize) + ' '+@strGetFields+ ' from [ '+ @tblName + '] '+ @strOrder
end
else
begin
set @strSQL = 'select top ' + str(@PageSize) + ' '+@strGetFields+ ' from [ '
+ @tblName + '] where [ ' + @fldName + '] ' + @strTmp + '([ '+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' [ '+ @fldName + '] from [ ' + @tblName + '] ' + @strOrder + ') as tblTmp) '+ @strOrder
if @strWhere != ' '
set @strSQL = 'select top ' + str(@PageSize) + ' '+@strGetFields+ ' from [ '
+ @tblName + '] where [ ' + @fldName + '] ' + @strTmp + '([ '
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' [ '
+ @fldName + '] from [ ' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
end
end
exec (@strSQL)
GO
荒野乱斗国际版 (BrawlStars)最新版本v56.274
下载一波超人内置修改器菜单版 安卓版v1.0.2
下载敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载继承了一座戏园子无限声望铜钱版 内置菜单最新版v1.7
继承了一座戏园子折相思版是游戏的破解版本,在该版本中为玩家提
山河半世橙光清软金手指版 无限鲜花v3.24
山河半世是一款超级好玩的橙光恋爱游戏,在游戏中玩家们需要扮演
蓬莱手游折相思版 安卓版v1.0.0
蓬莱免广告版是游戏的修改版本,在该版本中为玩家去除了广告,玩
当红影后橙光游戏破解版2025 最新版v1.0
当红影后橙光破解版是一款超级好玩的娱乐圈题材的橙光游戏,在这
忽然成了万人迷清软完结版 无限鲜花版v12.15
忽然成了万人迷破解版是一款非常好玩的男性向橙光游戏,在有一天