O banco de dados backend é Access. Depois de usá-lo por um ano, o cliente disse que a abertura da interface era muito lenta. Depois de verificar o banco de dados, descobri que havia mais de 50.000 registros na tabela de dados. Milhares de registros, a abertura da interface é muito lenta e a virada de página tem o mesmo problema. O método que adotei é carregar 20 registros por página, escrevê-los em um loop e exibi-los na tabela, e então definir quatro chaves de virada de página. para visualizar os dados, mas o problema é que, embora haja apenas vinte registros carregados na página a cada vez, todos os registros devem ser carregados de uma vez sempre que o conjunto de registros é aberto, por isso é lento.
Solução um:
1.Defina um campo de incremento automático e o campo é INDEX.
2. Por ser ACCESS, só pode ser usado para paginação front-end. O objetivo dos campos de aumento automático é realizar a função de paginação.
1> Registre o último valor autoincrementado da página anterior do usuário, como M.
2> Próxima página, pegue o valor inicial da página.M+1, o valor final: M+1+1.5*PAGESIZE (Nota: Como o banco de dados terá operações de adição e exclusão, deve haver um coeficiente para o tamanho da página . Você pode personalizar um grande coeficiente de 1 de acordo com a situação.
3> O loop front-end pega a primeira barra PAGESIZE do RS, grava-a em um novo RS e retorna.
Nota: O novo RS é um RS sem conexão.
Solução dois:
Cem mil registros não é o limite do banco de dados Access. Além do mais, seu método não está paginando no verdadeiro sentido (as propriedades PageSize e AbsolutePage devem ser usadas).
Código VBScript
Copie o código do código da seguinte forma:
Definir rs = Novo ADODB.Recordset
rs.CursorLocation = adUseClient
rs.PageSize = 20
rs.Open Selecione * De convidado, iConc, adOpenKeyset, adLockOptimisticlng
Páginas = rs.PageCount
lngPáginaAtual = 1
O conjunto de registros aberto neste momento possui apenas 20 registros.
Ao virar as páginas:
Copie o código do código da seguinte forma:
Se lngCurrentPage <lngPages então
lngCurrentPage = lngCurrentPage + 1
rs.AbsolutePage = lngCurrentPage
Terminar se