백엔드 데이터베이스는 액세스(Access)인데, 1년 정도 사용해보니 인터페이스 열기가 너무 느리다고 하더군요. 수천 개의 레코드, 인터페이스 열기가 매우 느리고 페이지 넘김에도 동일한 문제가 있습니다. 제가 채택한 방법은 페이지당 20개의 레코드를 로드하고 이를 루프로 작성하여 테이블에 표시한 다음 4개의 페이지 넘김 키를 설정하는 것입니다. 데이터를 보려면, 문제는 매번 페이지에 20개의 레코드만 로드되지만 레코드 세트를 열 때마다 모든 레코드를 한 번에 로드해야 하므로 속도가 느립니다.
해결 방법 1:
1. 자동 증가 필드를 설정합니다. 해당 필드는 INDEX입니다.
2. ACCESS이므로 프론트 엔드 페이징에만 사용할 수 있습니다. 자체 증가 필드의 목적은 페이징 기능을 구현하는 것입니다.
1> M과 같은 사용자의 이전 페이지의 마지막 자체 증가 값을 기록합니다.
2> 다음 페이지에서는 페이지의 시작 값을 가져옵니다.M+1, 끝 값: M+1+1.5*PAGESIZE(참고: 데이터베이스에는 추가 및 삭제 작업이 있으므로 페이지 크기에 대한 계수가 있어야 합니다. . 상황에 따라 큰 계수 1을 사용자 정의할 수 있습니다.
3> 프런트 엔드 루프는 RS의 첫 번째 PAGESIZE 막대를 가져와 새 RS에 쓰고 반환합니다.
참고: 새로운 RS는 비연결형 RS입니다.
해결 방법 2:
10만 개의 레코드는 Access 데이터베이스의 한계가 아닙니다. 더욱이, 귀하의 메소드는 진정한 의미에서 페이징이 아닙니다(PageSize 및 AbsolutePage 속성을 사용해야 함).
VB스크립트 코드
다음과 같이 코드 코드를 복사합니다.
rs 설정 = 새 ADODB.Recordset
rs.CursorLocation = adUseClient
rs.PageSize = 20
rs.Open 선택 * 게스트, iConc, adOpenKeyset, adLockOptimisticlng에서
페이지 = rs.PageCount
lng현재페이지 = 1
이때 열린 레코드 세트에는 20개의 레코드만 있습니다.
페이지를 넘길 때:
다음과 같이 코드 코드를 복사합니다.
lngCurrentPage < lngPages 다음인 경우
lngCurrentPage = lngCurrentPage + 1
rs.AbsolutePage = lngCurrentPage
종료 조건