많은 소개를 읽은 후에 set rs=conn.execute(sql)의 실행 효율성이 rs.open sql,conn,1,1보다 훨씬 높다는 것을 알았지만 set rs=conn의 실행 방법은 많습니다. ex.execute(sql).단점은 우선 rs.pagesize, rs,absolutepage 등의 페이징 속성이 없다는 점이다. 이 경우에는 이렇게 설정한다. rs=conn.execute(sql)의 실행 속도는 빠르지만 정상적인 방법으로 페이징할 수는 없습니다. 어떻게 해야 합니까? ?
다음날 인터넷으로 정보를 확인하다가 갑자기 필요한 데이터를 배열에 넣은 뒤 배열을 페이지화할 수 있지 않을까 하는 생각이 들었습니다. 먼저 set rs=conn.execute(sql)의 쿼리 결과를 꺼내서 rs.getrows()를 통해 배열에 첨부해서 여러 웹사이트에서 페이지네이션 게시물을 찾아봤지만 효율이 높은 페이지네이션 게시물이 많이 발견되었습니다. (저장 프로시저 등도 포함) 그런데 모두 SQL을 통해 실행해야 한다는 사실, 즉 페이지를 넘길 때 SQL 문을 실행해야 한다는 사실이 밝혀졌다. 이때 머리가 어지럽고 SQL 문만 최적화된다. . 이때는 정말 방법이 없어서 직접 해야겠어요. 드디어 배열 페이지 매김의 초안이 완성되었습니다. 모두가 함께 공부해 보세요. 코드는 다음과 같습니다:
먼저 index.asp 쿼리 페이지가 있습니다.
<html xmlns=http://www.w3.org/1999/xhtml>
<머리>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>제목 없는 문서</title>
</head>
<body><FORM id=SearchForm name=SearchForm method=post action=search.asp?act=cha>
<div 클래스=입력>
<input id=keyword onmouseover=this.focus() title=메시지 기록을 빠르게 검색 onfocus=this.select() class=in maxlength=35 name=keyword />
<스타일 선택=너비:120px;여백-상단:-25px 이름=채널ID>
<option value=k2>댓글을 남겨주세요</option>
<option value=k1>메시지 내용</option>
</select>
<입력ID=search_btn 유형=제출값=쿼리>
</div>
</FORM>
</body>
</html>
search.asp 코드:
<html xmlns=http://www.w3.org/1999/xhtml>
<머리>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>제목 없는 문서</title>
</head>
<본문>
<%
request.querystring(act)=cha인 경우 그러면
search_type=request.FORM(채널ID)
키워드=request.form(키워드)
search_type=k1인 경우 '메시지 내용에 따라 검색
sql=select * from gbook_rec 여기서 g_content는 '%&keywords&%'와 같습니다.
ElseIf search_type=k2이면
'search_type=k2이면 '메시지를 남긴 사람으로 검색하세요.
sql=select * from gbook_rec 여기서 g_name은 '%&keywords&%'와 같습니다.
또 다른
응답.끝
endIf
rs=conn.execute(sql) 설정
rs.eof 및 rs.bof인 경우
%>
<div class=search>찾으시는 기록이 없습니다! </div>
<%
응답.끝
또 다른
aResults=rs.getrows()' 데이터를 꺼내어 ROW 배열에 넣습니다.
애플리케이션(데이터)=a결과
rs=아무것도 설정하지 않음
conn.close '데이터베이스를 닫습니다.
IF 종료
종료 조건
aResults=애플리케이션(데이터)
Dim i,row,pagesize,epage,numb,pagecount,fenye
numb=UBound(aResults,2)+1 '기록된 총 행 수
pagesize=2 '페이지당 항목 수
If numb Mod pagesize = 0 Then '전체 페이지 수를 판단합니다.
페이지 수=Int(numb/페이지 크기)
또 다른
페이지 수=Int(numb/페이지 크기)+1
종료 조건
epage=request.querystring(페이지)
epage=이면 epage=1인 경우
i=(epage-1)*pagesize의 경우 epage*pagesize-1로
i>UBound(aResults,2) 또는 i<0이면 종료됩니다.
%>
<div 클래스=콘텐츠>
<ul><li>기록<%=i+1%></li>
<li>댓글 남기기: <%=aResults(1,i)%></li>
<li>콘텐츠: <%=aResults(2,i)%></li>
<li>시간:<%=aResults(3,i)%></li>
<li>IP:<%=aResults(5,i)%></li>
</ul>
</div>
<%
다음
마비된 경우>페이지 크기인 경우
fenye=<a href=search.asp?page=1>홈페이지</a>
fenye=fenye&<a href=search.asp?page=&epage-1& title=&epage-1&>이전 페이지</a>
fenye=fenye&<a href=search.asp?page=&epage+1& title=&epage+1&>다음 페이지</a>
fenye=fenye&<a href=search.asp?page=&pagecount&>마지막 페이지</a>
페니=페니&<BR>
fenye=fenye&총 페이지 수 &pagecount&, 현재 페이지 &epage&, 총 기록은 &numb
응답.페니에 쓰기
다음과 같은 경우 종료
%>
</body>
</html>
요약: 위의 코드는 초기 쿼리 외에는 데이터베이스에 연결하지 않아도 되고, 그 외의 시간에도 데이터베이스에 연결하지 않아도 되므로 대용량 데이터를 쿼리할 때나 리소스 절약에 매우 유용할 것 같습니다. 많은 사람들이 접속하고 있어요! 또한 쿼리 배열은 애플리케이션 객체에 저장되며 애플리케이션(데이터)(사용자 이름)을 기반으로 누군가 쿼리한 내용을 판단할 수도 있습니다. 그러나 이 코드는 첫 번째 모델이므로 모든 사람의 노력으로 개선되어야 합니다. 미래! 모두들 많은 관심과 응원 부탁드리겠습니다. 감사합니다!
테스트.rar