Ir para conteúdo
Fórum Script Brasil
  • 0

problema no repeat region


marcus.para

Pergunta

Bem amigos do fórum, estou com o seguinte problema: Meu banco de dados conecta legal, meu recordset esta funcionando bem, mas, quando faço um repeat region para paginar os resultados da busca no site, ele acha o primeiro registro numa boa, mas, na mesma página sempre me retorna o seguinte erro:

Microsoft JScript runtime error '800a01fb'

An exception occurred

/boraver.asp, line xxx

Já verifiquei tudo e o erro sempre é na linha onde está o seguinte código criado pelo próprio DW CS3:

Linha XXX - Recordset1.MoveNext();

Já tentei de tudo mas não consegui resolver. Quem sabe se os amigos do fórum olhando de fora do jogo conseguem me ajudar.

Segue o código pra vocês analizarem

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<!--#include file="Connections/teste.asp" -->
<%
var Recordset1__MMColParam = "1";
if (String(Request.QueryString("busca")) != "undefined" && 
    String(Request.QueryString("busca")) != "") { 
  Recordset1__MMColParam = String(Request.QueryString("busca"));
}
%>
<%
var Recordset1_cmd = Server.CreateObject ("ADODB.Command");
Recordset1_cmd.ActiveConnection = MM_teste_STRING;
Recordset1_cmd.CommandText = "SELECT * FROM a65191_busca.votacao WHERE nome LIKE ? ORDER BY id ASC";
Recordset1_cmd.Prepared = true;
Recordset1_cmd.Parameters.Append(Recordset1_cmd.CreateParameter("param1", 200, 1, 35, "%" + Recordset1__MMColParam + "%")); // adVarChar

var Recordset1 = Recordset1_cmd.Execute();
var Recordset1_numRows = 0;
%>
<%
var Repeat1__numRows = 10;
var Repeat1__index = 0;
Recordset1_numRows += Repeat1__numRows;
%>
<%
// *** Recordset Stats, Move To Record, and Go To Record: declare stats variables

// set the record count
var Recordset1_total = Recordset1.RecordCount;

// set the number of rows displayed on this page
if (Recordset1_numRows < 0) {            // if repeat region set to all records
  Recordset1_numRows = Recordset1_total;
} else if (Recordset1_numRows == 0) {    // if no repeat regions
  Recordset1_numRows = 1;
}

// set the first and last displayed record
var Recordset1_first = 1;
var Recordset1_last  = Recordset1_first + Recordset1_numRows - 1;

// if we have the correct record count, check the other stats
if (Recordset1_total != -1) {
  Recordset1_numRows = Math.min(Recordset1_numRows, Recordset1_total);
  Recordset1_first   = Math.min(Recordset1_first, Recordset1_total);
  Recordset1_last    = Math.min(Recordset1_last, Recordset1_total);
}
%>
<% var MM_paramName = ""; %>
<%
// *** Move To Record and Go To Record: declare variables

var MM_rs        = Recordset1;
var MM_rsCount   = Recordset1_total;
var MM_size      = Recordset1_numRows;
var MM_uniqueCol = "";
    MM_paramName = "";
var MM_offset = 0;
var MM_atTotal = false;
var MM_paramIsDefined = (MM_paramName != "" && String(Request(MM_paramName)) != "undefined");
%>
<%
// *** Move To Record: handle 'index' or 'offset' parameter

if (!MM_paramIsDefined && MM_rsCount != 0) {

  // use index parameter if defined, otherwise use offset parameter
  r = String(Request("index"));
  if (r == "undefined") r = String(Request("offset"));
  if (r && r != "undefined") MM_offset = parseInt(r);

  // if we have a record count, check if we are past the end of the recordset
  if (MM_rsCount != -1) {
    if (MM_offset >= MM_rsCount || MM_offset == -1) {  // past end or move last
      if ((MM_rsCount % MM_size) != 0) {  // last page not a full repeat region
        MM_offset = MM_rsCount - (MM_rsCount % MM_size);
      } else {
        MM_offset = MM_rsCount - MM_size;
      }
    }
  }

  // move the cursor to the selected record
  for (var i=0; !MM_rs.EOF && (i < MM_offset || MM_offset == -1); i++) {
    MM_rs.MoveNext();
  }
  if (MM_rs.EOF) MM_offset = i;  // set MM_offset to the last possible record
}
%>
<%
// *** Move To Record: if we dont know the record count, check the display range

if (MM_rsCount == -1) {

  // walk to the end of the display range for this page
  for (var i=MM_offset; !MM_rs.EOF && (MM_size < 0 || i < MM_offset + MM_size); i++) {
    MM_rs.MoveNext();
  }

  // if we walked off the end of the recordset, set MM_rsCount and MM_size
  if (MM_rs.EOF) {
    MM_rsCount = i;
    if (MM_size < 0 || MM_size > MM_rsCount) MM_size = MM_rsCount;
  }

  // if we walked off the end, set the offset based on page size
  if (MM_rs.EOF && !MM_paramIsDefined) {
    if ((MM_rsCount % MM_size) != 0) {  // last page not a full repeat region
      MM_offset = MM_rsCount - (MM_rsCount % MM_size);
    } else {
      MM_offset = MM_rsCount - MM_size;
    }
  }

  // reset the cursor to the beginning
  if (MM_rs.CursorType > 0) {
    if (!MM_rs.BOF) MM_rs.MoveFirst();
  } else {
    MM_rs.Requery();
  }

  // move the cursor to the selected record
  for (var i=0; !MM_rs.EOF && i < MM_offset; i++) {
    MM_rs.MoveNext();
  }
}
%>
<%
// *** Move To Record: update recordset stats

// set the first and last displayed record
Recordset1_first = MM_offset + 1;
Recordset1_last  = MM_offset + MM_size;
if (MM_rsCount != -1) {
  Recordset1_first = Math.min(Recordset1_first, MM_rsCount);
  Recordset1_last  = Math.min(Recordset1_last, MM_rsCount);
}

// set the boolean used by hide region to check if we are on the last record
MM_atTotal = (MM_rsCount != -1 && MM_offset + MM_size >= MM_rsCount);
%>
<%
// *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

// create the list of parameters which should not be maintained
var MM_removeList = "&index=";
if (MM_paramName != "") MM_removeList += "&" + MM_paramName.toLowerCase() + "=";
var MM_keepURL="",MM_keepForm="",MM_keepBoth="",MM_keepNone="";

// add the URL parameters to the MM_keepURL string
for (var items=new Enumerator(Request.QueryString); !items.atEnd(); items.moveNext()) {
  var nextItem = "&" + items.item().toLowerCase() + "=";
  if (MM_removeList.indexOf(nextItem) == -1) {
    MM_keepURL += "&" + items.item() + "=" + Server.URLencode(Request.QueryString(items.item()));
  }
}

// add the Form variables to the MM_keepForm string
for (var items=new Enumerator(Request.Form); !items.atEnd(); items.moveNext()) {
  var nextItem = "&" + items.item().toLowerCase() + "=";
  if (MM_removeList.indexOf(nextItem) == -1) {
    MM_keepForm += "&" + items.item() + "=" + Server.URLencode(Request.Form(items.item()));
  }
}

// create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL + MM_keepForm;
if (MM_keepBoth.length > 0) MM_keepBoth = MM_keepBoth.substring(1);
if (MM_keepURL.length > 0)  MM_keepURL = MM_keepURL.substring(1);
if (MM_keepForm.length > 0) MM_keepForm = MM_keepForm.substring(1);
%>
<%
// *** Move To Record: set the strings for the first, last, next, and previous links

var MM_moveFirst="",MM_moveLast="",MM_moveNext="",MM_movePrev="";
var MM_keepMove = MM_keepBoth;  // keep both Form and URL parameters for moves
var MM_moveParam = "index";

// if the page has a repeated region, remove 'offset' from the maintained parameters
if (MM_size > 1) {
  MM_moveParam = "offset";
  if (MM_keepMove.length > 0) {
    params = MM_keepMove.split("&");
    MM_keepMove = "";
    for (var i=0; i < params.length; i++) {
      var nextItem = params[i].substring(0,params[i].indexOf("="));
      if (nextItem.toLowerCase() != MM_moveParam) {
        MM_keepMove += "&" + params[i];
      }
    }
    if (MM_keepMove.length > 0) MM_keepMove = MM_keepMove.substring(1);
  }
}

// set the strings for the move to links
if (MM_keepMove.length > 0) MM_keepMove = Server.HTMLEncode(MM_keepMove) + "&";
var urlStr = Request.ServerVariables("URL") + "?" + MM_keepMove + MM_moveParam + "=";
MM_moveFirst = urlStr + "0";
MM_moveLast  = urlStr + "-1";
MM_moveNext  = urlStr + (MM_offset + MM_size);
MM_movePrev  = urlStr + Math.max(MM_offset - MM_size,0);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>testando</title>
<style type="text/css">
<!--
.style92 {color: #000000; font-weight: bold; }
.style85 {color: #FFFFFF; font-weight: bold; }
.style90 {font-size: 12px; font-weight: bold; }
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <div align="justify">
    <blockquote>
      <blockquote>
        <blockquote>
          <p align="center"><span class="style92">Você pesquisou:</span><strong><%=(Recordset1.Fields.Item("nome").Value)%></strong></p>
          <p align="center"><span class="style92">Cargo: </span><strong><%=(Recordset1.Fields.Item("cargo").Value)%></strong></p>
          <p align="center"><span class="style92">Situação:</span><strong><%=(Recordset1.Fields.Item("situação").Value)%></strong></p>
        </blockquote>
      </blockquote>
    </blockquote>
  </div>
</form>


<div align="center">
  <div align="center">
    <% while ((Repeat1__numRows-- != 0) && (!Recordset1.EOF)) { %>
      <form id="resutadodabusca" name="resutadodabusca" method="get" action="">
        <table width="337" border="1" align="center" bordercolor="#FFFFFF" bgcolor="#000000">
          <tr>
            <td width="122"><span class="style85">Nome</span></td>
            <td width="199"><span class="style85"><%=(Recordset1.Fields.Item("nome").Value)%></span></td>
          </tr>
          <tr>
            <td><span class="style85">Partido</span></td>
            <td><span class="style85"><%=(Recordset1.Fields.Item("partido").Value)%></span></td>
          </tr>
          <tr>
            <td><span class="style85">Município</span></td>
            <td bgcolor="#0000FF"><span class="style85"><%=(Recordset1.Fields.Item("Municipio").Value)%></span></td>
          </tr>
          <tr>
            <td><span class="style85">Votação</span> <span class="style85">1º Turno </span></td>
            <td bgcolor="#0000FF"><span class="style85"><%=(Recordset1.Fields.Item("votos1").Value)%></span></td>
          </tr>
          <tr>
            <td><span class="style85">Votação</span> <span class="style85">2º Turno</span></td>
            <td bgcolor="#0000FF"><span class="style85"><%=(Recordset1.Fields.Item("Votos2").Value)%></span></td>
          </tr>
          <tr>
            <td><span class="style85">Ranking</span></td>
            <td bgcolor="#0000FF"><span class="style85"><%=(Recordset1.Fields.Item("ranking").Value)%></span></td>
          </tr>
                </table>
      </form>
      <%
  Repeat1__index++;
  Recordset1.MoveNext
}
%>
<form id="form2" name="form2" method="post" action="">
      <table width="424" border="1" align="center" cellspacing="2" bordercolor="#000000" bgcolor="#CC6633">
        <tr bordercolor="#000000">
          <td width="82"><div align="center"><span class="style90"><a href="<%=MM_moveFirst%>">Página inicial</a> </span></div></td>
          <td width="92"><div align="center"><span class="style90"><a href="<%=MM_movePrev%>">Página anterior</a> </span></div></td>
          <td width="115"><div align="center"><span class="style90"><a href="<%=MM_moveNext%>">Próxima página</a> </span></div></td>
          <td width="107"><div align="center"><span class="style90"><a href="<%=MM_moveLast%>">Última página</a> </span></div></td>
        </tr>
      </table>
    </form>
    <p> </p>
  </div>
</div>
</body>
</html>
<%
Recordset1.Close();
%>

A página para que vocês possam ver é: http://www.alvopesquisa.com.br/busca.asp

Coloquem o nome priante, por exemplo ou Almir Gabriel para fazerem o teste.

Desde já agradeço o apoio dos colegas na resolução deste probleminha.

Um abraço!!

Editado por marcus.para
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...