Eu estou com um problema de difícil resolução. Eu tenho uma página que exibe o histórico de login de toda vez que o usuário acessou o site. Com o passar do tempo, depois de inúmeros acessos a página vai ficando extendida, por isso eu tentei paginar ela de forma que ficasse mais organizada.
No momento em que fiz isso acabou aparecendo inúmeros erro.
O erro que aparece agora é este:
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/login5/home.asp, line 42
Na linha 42 eu tenho isso:
Response.Write "<p class=FieldLabel>Histórico do usúario: " & rs("FirstName") & " " & rs("LastName") & " (" & rs("UserName") & ")</p>"
Eu já verifiquei o nome dos campos no DB e estão todos certos. Se quiserem verificar por via das dúvidas, neste link vc faz o download do DB.
Download do BD Acesso
Eu não compreendo aonde pode estar o erro que começou no momento em que eu fui tentar paginar os resultados. Vale lembrar que essa página se conecta ao DB dela através de um arquivo global asa que está no meu diretório raiz, também respondendo pelo meu site.
Se ajudar publicarei abaixo a página emq ue exibe o erro e também o código do global.asa.
Obrigado.
Página que tem o erro.
<%@ Language=VBScript %> <%Response.Expires = 0%> <%Response.Buffer = true%> <!--#include file="verify_login.asp"--> <!--#include file="header.asp"--> <center> <% user = Session("member") set rs_log = server.CreateObject ("ADODB.Recordset") query = "SELECT * FROM User_logTime WHERE offline=True AND user_id=" & user & " ORDER BY id DESC" rs_log.Open query, Application("connString"), 3 if not rs_log.eof then set rs = server.CreateObject ("ADODB.Recordset") RS.PageSize = 5 query = "SELECT * FROM Members WHERE id=" & user rs.Open query, Application("connString"), 3, 3 IF RS.EOF then Response.Write "nenhum registro encontrado" Response.End ELSE IF Request.QueryString("pagina")="" then intpagina=1 ELSE IF cint(Request.QueryString("pagina"))<1 then intpagina=1 ELSE IF cint(Request.QueryString("pagina"))> RS.PageCount then intpagina=RS.PageCount ELSE intpagina=Request.QueryString("pagina") END IF END IF END IF END IF RS.AbsolutePage=intpagina intrec=0 While intrec < RS.PageSize and not RS.EOF Response.Write "<p class=FieldLabel>Histórico do usúario: " & rs("FirstName") & " " & rs("LastName") & " (" & rs("UserName") & ")</p>" rs.Close rs.Open "SELECT DISTINCT user_id FROM User_LogTime WHERE offline=False", Application("connString"), 3 online = rs.RecordCount Response.Write "<table cellspacing=2 cellpadding=2 width=50% >" Response.Write "<tr bgcolor=#333366>" Response.Write "<td><font class=colltitle>Sessão N.º:</a></td>" Response.Write "<td><font class=colltitle>Data e Hora do Login:</a></td>" Response.Write "<td><font class=colltitle>Data e Hora do Logout:</a></td>" Response.Write "<td><font class=colltitle>IP:</a></td>" Response.Write "</tr>" & vbcrlf RS.MoveNext intrec=intrec+1 IF RS.EOF then response.write " " END IF Wend rs.Close set rs = nothing IF intpagina > 1 then %> <a href="home.asp?pagina=<%=intpagina-1%>">Anterior</a> <% END IF IF strcomp(intpagina,RS.PageCount) <> 0 then %> <a href="home.asp?pagina=<%=intpagina + 1%>">Próxima</a> <% END IF %> <% i = 1 while not rs_Log.EOF if i mod 2 then Response.Write "<tr class=defaultsmall>" else Response.Write "<tr class=defaultsmall bgcolor=#dedede>" end if Response.Write "<td>" & rs_Log("SID") & "</td>" Response.Write "<td>" & rs_Log("Login_Time") & "</td>" if rs_Log("Logout_Time") <> "" then Response.Write "<td>" & rs_Log("Logout_Time") & "</td>" else Response.Write "<td>N/A</td>" end if Response.Write "<td>" & rs_Log("user_ip") & "</td>" Response.Write "</tr>" & vbcrlf i = i + 1 rs_Log.MoveNext wend Response.Write "</table>" Response.Write "<p class=defaultsmall>" & online & " usúario(s) online.</p>" else Response.Write "<p class=FieldLabel>Este é seu primeiro acesso ao sistema.<br> Você ainda não tem histórico, faça o logout e logue-se novamente.</p>" end if rs_Log.Close set rs_Log = nothing %> <a href='logout.asp' class=errmsg>Logout!</a> </center>
Arquivo Global.asa
<script language="VBScript" runat="server"> 'Inicia as variaveis de aplicação Sub Application_onStart() ' - - - -Conexao com o banco de dados - -- - -- - -- --- - - - - -- Application("Connection") = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\Domains\noticiaregional.com.br\db\noticias.mdb;" Application("connString") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Domains\noticiaregional.com.br\db\acesso.mdb" End Sub Sub Session_OnEnd set conn = Server.CreateObject ("ADODB.Connection") conn.Open Application("connString") ' Update the record when the user logout and write the logout time plus it sets the user as OFFLINE. query = "UPDATE User_LogTime SET Logout_Time=#" & now() & "#, offline=True WHERE offline=False AND SID=" & Session.SessionID & " AND user_id=" & Session("member") conn.Execute (query) conn.Close set conn = Nothing End Sub Sub Session_onStart() Session.Timeout = 20 Session.LCID = 1046 End Sub </script>