La base de datos backend es Access. Después de usarla durante un año, el cliente dijo que abrir la interfaz era muy lento. Después de verificar la base de datos, encontré que había más de 50,000 registros en la tabla de datos. Miles de registros, abrir la interfaz es muy lento y pasar páginas tiene el mismo problema. El método que adopté es cargar 20 registros por página, escribirlos en un bucle y mostrarlos en la tabla, y luego configurar cuatro teclas para pasar de página. para ver los datos, pero el problema es que aunque solo se cargan veinte registros en la página cada vez, todos los registros deben cargarse a la vez cada vez que se abre el conjunto de registros, por lo que es lento.
Solución uno:
1.Establezca un campo de incremento automático y el campo es ÍNDICE.
2. Dado que es ACCESO, solo se puede utilizar para paginación frontal. El propósito del campo de aumento automático es realizar la función de paginación.
1> Registre el último valor autoincrementado de la página anterior del usuario, como M.
2> Página siguiente, tome el valor inicial de la página.M+1, el valor final: M+1+1.5*PAGESIZE (Nota: dado que la base de datos tendrá operaciones de adición y eliminación, debe haber un coeficiente para el tamaño de la página Puede personalizar un coeficiente grande de 1 según la situación.
3> El bucle frontal toma la primera barra PAGESIZE de RS, la escribe en un nuevo RS y regresa.
Nota: El nuevo RS es un RS sin conexión.
Solución dos:
Cien mil registros no es el límite de la base de datos de Access. Es más, su método no es paginación en el verdadero sentido (se deben usar las propiedades PageSize y AbsolutePage).
código VBScript
Copie el código de código de la siguiente manera:
Establecer rs = Nuevo ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Tamaño de página = 20
rs.Open Select * De invitado, iConc, adOpenKeyset, adLockOptimisticlng
Páginas = rs.PageCount
lngPáginaActual = 1
El conjunto de registros abierto en este momento tiene solo 20 registros.
Al pasar las páginas:
Copie el código de código de la siguiente manera:
Si lngCurrentPage < lngPages Entonces
lngPáginaCurrent = lngPáginaCurrent + 1
rs.AbsolutePage = lngCurrentPage
Terminar si