Depois de ler muitas introduções, sei que a eficiência de execução de set rs=conn.execute(sql) é muito maior do que rs.open sql,conn,1,1, mas existem muitos métodos de execução de set rs=conn. execute(sql). Desvantagens, em primeiro lugar, não possui atributos de paginação, como rs.pagesize, rs, absolutopage e outros atributos. Embora a velocidade de execução de rs=conn.execute(sql) seja mais rápida, ele não pode ser paginado da maneira normal. ?
No dia seguinte, verifiquei as informações na Internet e de repente pensei se poderia colocar os dados necessários em um array e depois paginar o array? Primeiro, peguei o resultado da consulta set rs=conn.execute(sql) e anexei-o a um array por meio de rs.getrows(), então procurei postagens de paginação em vários sites, embora tenha encontrado muitas postagens de paginação de alta eficiência (Incluindo procedimentos armazenados, etc.), mas acontece que todos precisam ser executados por meio de SQL, ou seja, instruções SQL precisam ser executadas ao virar as páginas. Neste momento, minha cabeça fica tonta e apenas as instruções SQL são otimizadas. Neste momento, realmente não há como, então eu tenho que fazer isso sozinho. Finalmente, concluí um rascunho da paginação do array. O código não está muito completo. O código é o seguinte:
Primeiro, há uma página de consulta index.asp:
<html xmlns=http://www.w3.org/1999/xhtml>
<cabeça>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Documento sem título</title>
</head>
<body><FORM id=SearchForm name=SearchForm method=post action=search.asp?act=cha>
<div classe = entrada>
<input id=keyword onmouseover=this.focus() title=Pesquise rapidamente seus registros de mensagens onfocus=this.select() class=in maxlength=35 name=keyword />
<select style=width:120px;margin-top:-25px name=ChannelID>
<option value=k2>Deixe um comentário</option>
<option value=k1>Conteúdo da mensagem</option>
</selecionar>
<ID de entrada = tipo de pesquisa_btn = enviar valor = consulta>
</div>
</FORM>
</body>
</html>
código search.asp:
<html xmlns=http://www.w3.org/1999/xhtml>
<cabeça>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Documento sem título</title>
</head>
<corpo>
<%
Se request.querystring(act)=cha Então
search_type=request.FORM(ChannelID)
palavras-chave=request.form(palavra-chave)
if search_type=k1 then 'Pesquisar de acordo com o conteúdo da mensagem
sql=select * de gbook_rec onde g_content como '%&keywords&%'
ElseIf search_type=k2 então
'if search_type=k2 then 'Pesquise de acordo com a pessoa que deixou a mensagem
sql=select * de gbook_rec onde g_name como '%&keywords&%'
Outro
resposta.fim
fimSe
Definir rs=conn.execute(sql)
Se rs.eof e rs.bof então
%>
<div class=search>O registro que você procura não foi encontrado! </div>
<%
resposta.Fim
Outro
aResults=rs.getrows()' Retire os dados e coloque-os no array ROW
aplicação(dados)=aResultados
Defina rs = nada
conn.close 'Fecha o banco de dados
Terminar SE
Terminar se
aResultados=aplicativo(dados)
Dim i,linha,tamanho da página,epage,numb,contagem de páginas,fenye
numb=UBound(aResults,2)+1 'Número total de linhas registradas
pagesize=2 'Número de itens por página
Se numb Mod pagesize = 0 Então 'Julgue o número total de páginas
pagecount=Int(numb/tamanho da página)
Outro
pagecount=Int(numb/tamanho da página)+1
Terminar se
epage=request.querystring(página)
Se epage= Então epage=1
Para i=(epage-1)*pagesize Para epage*pagesize-1
Se i>UBound(aResults,2) Ou i<0 Então saia para
%>
<div classe = conteúdo>
<ul><li>Registro<%=i+1%></li>
<li>Deixe um comentário: <%=aResults(1,i)%></li>
<li>Conteúdo: <%=aResultados(2,i)%></li>
<li>Tempo:<%=aResultados(3,i)%></li>
<li>IP:<%=aResultados(5,i)%></li>
</ul>
</div>
<%
Próximo
Se entorpecido> tamanho da página Então
fenye=<a href=search.asp?page=1>Página inicial</a>
fenye=fenye&<a href=search.asp?page=&epage-1& title=&epage-1&>Página anterior</a>
fenye=fenye&<a href=search.asp?page=&epage+1& title=&epage+1&>Próxima página</a>
fenye=fenye&<a href=search.asp?page=&pagecount&>última página</a>
fenye=fenye&<BR>
fenye=fenye&Número total de páginas &pagecount&, página atual &epage&, o total de registros é: &numb
resposta.escrever fenye
Terminar se
%>
</body>
</html>
Resumo: Acho que o código acima não precisa se conectar ao banco de dados, exceto para a consulta inicial, e não precisa se conectar ao banco de dados em outros momentos. É muito útil para economizar recursos ao consultar grandes dados ou quando houver. tem muita gente se conectando! Além disso, a matriz de consulta é salva no objeto do aplicativo, e você também pode julgar o que alguém consultou com base no aplicativo (dados) (nome de usuário). No entanto, esse código é o primeiro modelo e precisa ser melhorado pelos esforços de todos no aplicativo. futuro! Espero que todos prestem atenção e apoio, obrigado!
teste.rar