웹 애플리케이션을 구축하려면 Pagination 브라우징 기능이 필수적입니다. 이 문제는 데이터베이스 처리에서 매우 일반적입니다. 실제로이 페이지 매김 방법은 소량의 데이터에만 적용됩니다. 잘못된 새로운 기술 채널의 편집자를 따르려면 자세한 내용을 알 수 있습니다!
아이디어의 출처 :
게시 테이블에서 NTH에서 MTH까지의 레코드를 꺼내십시오.
최상위 M-N+1 * 선택
출판에서
어디에 (ID가 없습니다
(상단 N-1 ID를 선택하십시오
출판에서))
다음은 저장된 절차입니다.
코드 사본은 다음과 같습니다.절차 페이지를 만듭니다
@tblname varchar (255), - 테이블 이름
@StrgetFields varchar (1000) = '*', - 반환 할 열
@fldname varchar (255) = '', - 정렬 필드 이름
@pagesize int = 10, - 페이지 크기
@PageIndex int = 1, - 페이지 번호
@docount bit = 0, - 총 레코드 수를 반환하고 값이 0이 아닌 경우 반환합니다.
@OrderType bit = 0, - 정렬 유형을 설정하고 값이 0이 아닌 경우 주문 하강 순서
@strwhows varchar (1500) = '' - 쿼리 조건 (참고 : 어디에 추가하지 마십시오)
처럼
@strsql varchar (5000) - 주제 진술을 선언합니다
@strtmp varchar (110) - 임시 변수 선언
@strorder varchar (400) - 정렬 유형을 선언하십시오
@docount! = 0 인 경우
시작하다
@strhows! = ''인 경우
@strsql = 'select count (*)는 [' + @tblname + ']에서 총으로' + @strwhere '
또 다른
@strsql = 'select count (*)는 [' + @tblname + ']의 총계로 select count (*)'
끝
-위의 코드는 @docount가 0이 아닌 경우 총 카운트가 실행된다는 것을 의미합니다. 다음 모든 코드는 @docount가 0 인 경우입니다.
또 다른
시작하다
@OrderType! = 0이면
시작하다
set @strtmp = '<(select min' '
set @strorder = 'Order by [' + @fldname + '] desc'
-@OrderType가 0이 아닌 경우 하강 순서를 수행하십시오. 이 문장은 매우 중요합니다!
끝
또 다른
시작하다
set @strtmp = '> (max'select '
set @strorder = 'Order by [' + @fldname + '] asc'
끝
@PageIndex = 1 인 경우
시작하다
@strhows! = ''인 경우
@strsql = 'select' + @tblname + '에서' + @tblname + '에서' + ' + @strgetfields +' + ' +' + ' + @strgetfields +'select where ' + @strhows +' ' + @strorder를 설정하십시오.
또 다른
@strsql = 'select'+ str (@pagesize)+ ''+ @strgetfields+ '['+ @tblname+ ']'+ @strorder
-첫 번째 페이지 인 경우 위 코드를 실행하면 실행 속도 속도가 빨라집니다.
끝
또 다른
시작하다
@strsql = 'select' + str (@pagesize) + '' +@strgetfields + '에서 [' '
+ @tblname + '] 여기서 [' + @fldname + ']' + @strtmp + '([' '
+ @fldname + '])에서 (상단' + str ' + str ((@pageindex-1)*@pagesize) +'[ '['[ '['[ '
+ @fldname + ']에서 [' + @tblname + ']' + @strorder + ') as tbltmp)' '
+ @strorder
@strhows! = ''인 경우
@strsql = 'select' + str (@pagesize) + '' +@strgetfields + '에서 [' '
+ @tblname + '] 여기서 [' + @fldname + ']' + @strtmp + '([' '
+ @fldname + '])에서 (상단' + str ' + str ((@pageindex-1)*@pagesize) +'[ '['[ '['[ '
[ ' + @tblname +'에서 + @fldname + ']] 여기서' + @strhows + ''
+ @Strorder + ') AS TBLTMP) 및' + @Strwhere + '' + @strorder
끝
끝
exec (@strsql)
--print @strsql
가다
The New Technology Channel의 편집자가 소개 한 내용을 통해 모든 사람이 특정 이해를 가지고 있다고 생각합니다. 더 많은 기술 컨텐츠를 알고 싶다면 未分 새로운 기술 채널에 계속주의를 기울이십시오!