SQL Server 2000的分页存储过程的改写

复制set @intOrder=CharIndex(order by,的的源码下载改@SQL) set @intSQL=Len(@SQL) set @intFilds=CharIndex(select,@SQL) set @strFilds=SubString(@SQL,@intFilds+7,@intSQL-@intFilds-1) set @strFilds=SubString(@strFilds,1,CharIndex(from,@strFilds)-1) set @tblName=SubString(@SQL,CharIndex(from,@SQL)+5,@intSQL-CharIndex(from,@SQL)+5) set @intTable=CharIndex( ,@tblName) if @intTable>0 begin set @tblName=SubString(@tblName,1,@intTable-1) end set @intWhere=CharIndex(where ,@SQL) if @intWhere>0 begin if @intOrder>0 begin set @strWhere=SubString(@SQL,@intWhere+6,@intOrder-@intWhere-7) end else begin set @strWhere=SubString(@SQL,@intWhere+6,@intSQL-@intWhere-5) end end else begin set @strWhere= end if @intOrder>0 begin set @strOrder=+SubString(@SQL,@intOrder,@intSQL-@intOrder+1) set @tmpOrder=SubString(@strOrder,11,Len(@strOrder)-10) if CharIndex( ,@tmpOrder)>0 begin set @fldName=SubString(@tmpOrder,1,CharIndex( ,@tmpOrder)-1) end else begin set @fldName=@tmpOrder end if CharIndex(desc,@SQL)>0 begin set @strTmp=<(select min end else begin set @strTmp=>(select max end end else begin set @fldName=ID set @strTmp = >(select max set @strOrder = order by [ + @fldName +] asc end set @strSQL = select top + LTrim(str(@PageSize)) + +@strFilds+ from [ + @tblName + ] where [ + @fldName + ] + @strTmp + ([ + @fldName + ]) from (select top + LTrim(str((@PageIndex-1)*@PageSize)) + [ + @fldName + ] from [ + @tblName + ] + @strOrder + ) as tblTmp) + @strOrder if @strWhere != set @strSQL = select top + LTrim(str(@PageSize)) + +@strFilds+ from [ + @tblName + ] where [ + @fldName + ] + @strTmp + ([ + @fldName + ]) from (select top + LTrim(str((@PageIndex-1)*@PageSize)) + [ + @fldName + ] from [ + @tblName + ] where + @strWhere + + @strOrder + ) as tblTmp) and + @strWhere + + @strOrder if @PageIndex = 1 begin set @strTmp = if @strWhere != set @strTmp = where ( + @strWhere + ) set @strSQL = select top + LTrim(str(@PageSize)) + +@strFilds+ from [ + @tblName + ] + @strTmp + + @strOrder end exec (@strSQL) 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.网站模板
本文地址:http://www.bzuk.cn/html/055a6299882.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。