
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--以上代码的意思是如果传过来的不是0的话就进行总数统计-------------------------以下代码是@doCount 为0的情况(不进行数据统计): 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 --如果@OrderType 不是0就执行降序 **************** 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 --以下代码赋予@strSQL真正执行的SQL代码 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
execute(@strSQL)
没有评论:
发表评论