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

Erro, Erro, Erro


Kinhabeu

Pergunta

24 respostass a esta questão

Posts Recomendados

  • 0

A tabela não esta vazia e o campo existe

sqlProd = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto"

set Registros = Conexao.Execute (sqlProd)

Ele até mostra direitinho somente os registros cujo departamento é igual a laticinios, mas no final dá aquele erro.

Como faço para o ASP não mostrar o erro, porque está funcionando.

Link para o comentário
Compartilhar em outros sites

  • 0
Olá Pessoal

Alguém sabe que erro é esse?

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/laporcela/laticinios.asp, line 0

Um abraço e obrigada,

Erika

Calma Erica!!

Relaxa que tudo dá certo no final....

Provavelmente, você não deu um tratamento no seu looping ao percorrer as informações de sua tabela.

Dica:

Sempre procure fazer o seguinte para mostrar todos os registros....

 While Not Rs.Eof

Tradução: Enquanto não for vazio (EOF) o Recordset (Rs) execute a instrução...

Bjão!!

[ursolouco] - Ex Funcionario da AOL _ hehehe manda PM para se lembrar de quem eu sou..!!!

Link para o comentário
Compartilhar em outros sites

  • 0

hehe

Se não funcionar as dicas dadas, poste aí seu codigo

T+

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal Valeu a força...... Se isso não funcionar, meu pecoço vai rolar aqui na empresa.

Ainda não funcionou... Segue o código

Eu preciso que os produtos apareçam em uma tabala de 3 colunas, um do lado do outro. E a cada 3 produto pule de linha.

Olha qe eu fiz:

<%

ConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\home\notabrasil\dados\banco.mdb;"

Set Conexao = Server.CreateObject("ADODB.Connection")

Conexao.Open ConnString

sqlProd = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto"

set Registros = Conexao.Execute (sqlProd)

%>

<br><br>

<table border="0" width="490" align="center">

  <%

if Not Registros.EOF then

while not Registros.eof

%>

  <tr align="center">

    <td width=150><b><%= Registros("produto") %></b><br>

      <img src=<%= Registros("imagem") %>><br>

      <%= Registros("descricao") %><br></td>

<%Registros.MoveNext%>

    <td width=20>&nbsp;</td>

    <td width=150><b><%= Registros("produto") %></b><br>

      <img src=<%= Registros("imagem") %>><br>

      <%= Registros("descricao") %></td>

    <td width=20>&nbsp;</td>

<%Registros.MoveNext%>

    <td width=150><b><%= Registros("produto") %></b><br>

      <img src=<%= Registros("imagem") %>><br>

      <%= Registros("descricao") %></td>

  </tr>

  <tr>

    <td colspan="5">&nbsp; </td>

  </tr>

  <%

Registros.MoveNext

Wend

%>

</table>

<%

else%>

<br><br>

<table border="0" width="490" align="center">

 

  <tr align="center">

    <td width=490>Nenhum dado encontrado</td>

  </tr>

  <tr>

    <td colspan="2">&nbsp; </td>

  </tr>

  </table>

<%End if%>

<%

Registros.Close

Conexao.Close

Set Registros = Nothing

Set Conexao = Nothing

%>

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei ao certo, se vai funcionar, pois fiz por cima..

<%

'...
'.....
	sqlProd = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto

	Set Rs = Server.CreateObject("adodb.recordset")
	Set Rs = Conexao.Execute(sqlProd)

	If Not Rs.Eof Then
  vProd = Rs.GetRows
	End If

	controle = 0
	contador = 0
	totalvetor = ubound(vProd)
	pulalinha = 0

	Response.Write("<table>")

	While contador < totalvetor
  if pulalinha = 0 Then
  	For I = 0 To 3
    Response.Write("<td><p>")
    Response.Write(vprod(1,contador))
    Response.Write("</p></td>")
  	Next
  	pulalinha = 1
  elseif	pulalinha = 1 then
  	Response.Write("<tr>")
  	Response.Write("<td colspan='3'>")
  	Response.Write("<p></p>")
  	Response.Write("</td>")
  	Response.Write("</tr>")
  	pulalinha = 0
  End if  
  contador = contador + 1
	Wend

	Response.Write("</table>")

	Conexao.Close
	Set Conexao = Nothing


%>

Link para o comentário
Compartilhar em outros sites

  • 0
<%
'...
'.....
sqlProd = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto

Set Rs = Server.CreateObject("adodb.recordset")
Set Rs = Conexao.Execute(sqlProd)

If Not Rs.Eof Then
 vProd = Rs.GetRows
End If

contador = 0
totalvetor = ubound(vProd)
Response.Write("<table>")
While contador < totalvetor
  For I = 0 To 2
   Response.Write("<tr>")
   Response.Write("<td><p>")
   Response.Write(vprod(1,contador))
   Response.Write("</p></td>")
   Response.Write("</tr>")
  Next
 contador = contador + 1
Wend
Response.Write("</table>")
Conexao.Close
Set Conexao = Nothing
%>

Link para o comentário
Compartilhar em outros sites

  • 0
<%
'...
'.....
sqlProd = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto

Set Rs = Server.CreateObject("adodb.recordset")
Set Rs = Conexao.Execute(sqlProd)

If Not Rs.Eof Then
vProd = Rs.GetRows
End If

contador = 0
totalvetor = ubound(vProd)

Response.Write("<table>")
	while contador < totalvetor
  Response.Write("<tr>")
  For C = 0 to 2
  	Response.Write("<td>")
  	Response.Write(vProd(1, contador))
  	contador = contador + 1
  	Response.Write("</td>")
  Next
  Response.Write("</tr>")
	wend
Response.Write("</table>")

Conexao.Close
Set Conexao = Nothing
%>

Link para o comentário
Compartilhar em outros sites

  • 0
Tá quase dando certo.........

Ele agora muda de registro mas só coloca 6 registros (2 linhas) e não os 46....

Você está salvando a minha pele !!!

Estamos quase lá....

Talvez, dê problemas no seu vetor, mas não custa tentar...

<%
'...
'.....
sqlProd = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto

Set Rs = Server.CreateObject("adodb.recordset")
Set Rs = Conexao.Execute(sqlProd)

If Not Rs.Eof Then
vProd = Rs.GetRows
End If

contador = 0
totalvetor = ubound(vProd, 1)

Response.Write("<table>")
	while contador < totalvetor
  Response.Write("<tr>")
  For C = 0 to 2
  	Response.Write("<td>")
  	Response.Write(vProd(1, contador))
  	contador = contador + 1
  	Response.Write("</td>")
  Next
  Response.Write("</tr>")
	wend
Response.Write("</table>")

Conexao.Close
Set Conexao = Nothing
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Realmente ele não passa da segunda linha.....

Não quero mais abusar de você.

Eu preciso entregar isso hoje.

Eu tenho um banco de dados access com 250 produtos cadastrados (nome, foto, descrição e departamento).

Eu preciso que esta página mostre somente o deparamento laticinio em uma tabela com 3 colunas (nome, foto embaixo e a descrição) e com paginação para a página não ficar comprida.

Você pode fazer ou conhece alguém que possa fazer somente esta página pra mim? E quanto você vai cobrar? Assim que funcionar (dependendo do valor) eu já transfiro o dinheiro.

Um abraço

Erika

Link para o comentário
Compartilhar em outros sites

  • 0

Olá kinhabeu.

Deixa eu me meter no papo aqui, huahauauh

Olha só.. ele ta dando erro no final, né?

Após mostrar todos os dados, dá erro, certo?

Então, deve ser porque, quando ele chega no ultimo registro do banco, e se depara com o comando MoveNext, e como o próximo não exite, gera o erro.

Eu nunca tentei isso, mas que tal fazer um IF, antes do ultimo MoveNext, e testar se o registro atual é o ultimo?

Assim, quando for o ultimo, esse comando não é executado, e não dará erro!

Que acha?

Pondo em prática, ficaria algo assim:

<%

ConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\home\notabrasil\dados\banco.mdb;"

Set Conexao = Server.CreateObject("ADODB.Connection")

Conexao.Open ConnString

sqlProd = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto"

set Registros = Conexao.Execute (sqlProd)

%>

<br><br>

<table border="0" width="490" align="center">

  <%

if Not Registros.EOF then

while not Registros.eof

%>

  <tr align="center">

    <td width=150><b><%= Registros("produto") %></b><br>

      <img src=<%= Registros("imagem") %>><br>

      <%= Registros("descricao") %><br></td>

<%Registros.MoveNext%>

    <td width=20>&nbsp;</td>

    <td width=150><b><%= Registros("produto") %></b><br>

      <img src=<%= Registros("imagem") %>><br>

      <%= Registros("descricao") %></td>

    <td width=20>&nbsp;</td>

<%Registros.MoveNext%>

    <td width=150><b><%= Registros("produto") %></b><br>

      <img src=<%= Registros("imagem") %>><br>

      <%= Registros("descricao") %></td>

  </tr>

  <tr>

    <td colspan="5">&nbsp; </td>

  </tr>

  <%

if Registros.EOF = False then

Registros.MoveNext

end if

Wend

%>

</table>

<%

else%>

<br><br>

<table border="0" width="490" align="center">

 

  <tr align="center">

    <td width=490>Nenhum dado encontrado</td>

  </tr>

  <tr>

    <td colspan="2">&nbsp; </td>

  </tr>

  </table>

<%End if%>

<%

Registros.Close

Conexao.Close

Set Registros = Nothing

Set Conexao = Nothing

%>

PS: Eu peguei o código que você postou logo após o meu post.. aqui.

não custa nada tentar, né!

Teste, e nos diga o que ocorreu!

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Erica!!!

<%

	Function criaLink(dir, Inicio, Final)	
  Response.Write("<a href=")
  Response.Write("ursolouco_laticinios.asp?Inicio=")
  Response.Write(INicio)  	
  Response.Write("&Final=")
  Response.Write(Final)
  Response.Write(">")
  Response.Write(dir)
  Response.Write("</a>")
	End Function

	Inicio = Request("INicio")
	Final = Request.QueryString("Final")

	If isEmpty(Inicio) Then
  Inicio = 0
	End If

	If isEmpty(Final) Then
  Final = Inicio + 4
	End If	

	cBanco = "banco.mdb"
	strConn = "Provider = Microsoft.jet.oledb.4.0; Data Source = " & cBanco
	Set Conn = Server.CreateObject("adodb.connection")
	Conn.Open(strConn)
	strSQL = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto"
	Set Rs = Server.CreateObject("adodb.recordset")
	Set Rs = Conn.Execute(strSQL)
  
	If Not Rs.Eof Then
  vRs = Rs.GetRows
  maxRegistro = UBound(vRs)  	
  	Response.Write("<table border='0' cellspacing='0' cellpading='0' 

align='center'>")
  	Contador = Inicio
  	For I = Inicio To Final
    Response.Write("<tr>")
    For C = 0 to 2    	
    	Response.Write("<td width=135>")
    	Response.Write("<p>")
    	Response.Write("<img src='")
    	If Contador < maxRegistro Then    	
      Response.Write(vRs(4,Contador))
    	Else
      Response.Write("&nbsp;")
    	End If
    	Response.Write("' border='0'")
    	Response.Write(" >")
    	Response.Write("<br>")
    	Response.Write(vRs(1,Contador))    	
    	Response.Write("</p>")
    	Response.Write("</td>")
    	Contador = Contador + 1
    Next
    Response.Write("</tr>")
  	Next
  	Response.Write("</table>")
  	Response.Write("<br>")
  	Response.Write("<p align=center>")  	
  	If Inicio > 1 Then
    Call CriaLink("Voltar", Inicio -4, Final-4)
  	End if
  	Response.Write(" :: ")
  	If Inicio >= 0 Then      
    Call CriaLink("Avançar", Inicio+4, Final+4)
  	End If
  	Response.Write("</p>")
  Conn.Close
  Set Conn = Nothing
	Else
  Response.Write("<table border='0' cellspacing='0' cellpading='0'>")
  Response.Write("<tr>")
  Response.Write("<td>")
  Response.Write("<p>")
  Response.Write("Não foi encontrado nenhum registro")
  Response.Write("</p>")
  Response.Write("</td>")
  Response.Write("</tr>")
  Response.Write("</table>")
  Conn.Close
  Set Conn = Nothing
	End If	
%>

Só não estou conseguindo para a paginação, mas isso ae, acredito que você consiga resolver, porque agora, não dá nem pra da uma olhada, esta terrivel por aqui.

Abraços!!

Link para o comentário
Compartilhar em outros sites

  • 0

Já valeu demais mesmo......

Este codigo que você me mandou funciona diretinho, só dá erro no final.

Vou tentar resolver.

Obrigada, de verdade e estou a disposição para qualquer problema de design que você tenha que resolver (Photoshop, corel, etc.)

Um grande abraço,

Erika

Link para o comentário
Compartilhar em outros sites

  • 0
Já valeu demais mesmo......

Este codigo que você me mandou funciona diretinho, só dá erro no final.

Vou tentar resolver.

Obrigada, de verdade e estou a disposição para qualquer problema de design que você tenha que resolver (Photoshop, corel, etc.)

Um grande abraço,

Erika

conseguiu resolver seu problema?

Como ficou?

Link para o comentário
Compartilhar em outros sites

  • 0
Já valeu demais mesmo......

Este codigo que você me mandou funciona diretinho, só dá erro no final.

Vou tentar resolver.

Obrigada, de verdade e estou a disposição para qualquer problema de design que você tenha que resolver (Photoshop, corel, etc.)

Um grande abraço,

Erika

conseguiu resolver seu problema?

Como ficou?

Dark!!

Só não estou conseguindo fechar ou paralizar a paginação, de resto, esta tudo ok.

Link para o comentário
Compartilhar em outros sites

  • 0

Estava repetindo de uma página para outra os produtos, mas isso eu consegui resolver, só não consigo resolver parar a paginação

<%

Function criaLink(dir, Inicio, Final)

  Response.Write("<a href=")

  Response.Write("base.asp?file=Ericalaticinios.asp&file2=titulos/laticinios.asp&Inicio=")

  Response.Write(INicio) 

  Response.Write("&Final=")

  Response.Write(Final)

  Response.Write(">")

  Response.Write(dir)

  Response.Write("</a>")

End Function

Inicio = Request("INicio")

Final = Request.QueryString("Final")

If isEmpty(Inicio) Then

  Inicio = 0

End If

If isEmpty(Final) Then

  Final = Inicio + 4

End If

cBanco = "e:\home\notabrasil\dados\banco.mdb"

strConn = "Provider = Microsoft.jet.oledb.4.0; Data Source = " & cBanco

Set Conn = Server.CreateObject("adodb.connection")

Conn.Open(strConn)

strSQL = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto"

Set Rs = Server.CreateObject("adodb.recordset")

Set Rs = Conn.Execute(strSQL)

 

If Not Rs.Eof Then

  vRs = Rs.GetRows

  maxRegistro = UBound(vRs) 

  Response.Write("<table border='0' cellspacing='0' cellpading='0' align='center' width=510>")

  Contador = Inicio

  For I = Inicio To Final

    Response.Write("<tr>")

    For C = 0 to 2   

    Response.Write("<td align=center width=150>")

    Response.Write("<p><font color=#666666 size=2 face=verdana>")

    Response.Write("<img src='")   

    Response.Write(vRs(4,Contador))

    Response.Write("' border='0'")

    Response.Write(" >")

    Response.Write("<br><b>")

    Response.Write(vRs(1,Contador))

    Response.Write("</b><br>")

    Response.Write(vRs(2,Contador))

    Response.Write("</p>")

    Response.Write("</td>")

    Response.Write("<td width=20>&nbsp;</td>")

    Contador = Contador + 1

    Next

    Response.Write("</tr><tr><td colspan=6>&nbsp;</td></tr>")

  Next

  Response.Write("</table>")

  Response.Write("<br>")

  Response.Write("<p align=center><font size=2 face=verdana>") 

  If Inicio > 1 Then

    Call CriaLink("Voltar", Inicio -14, Final-14)

  End if

  Response.Write(" :: ")

  If Inicio >= 0 Then     

    Call CriaLink("Avançar", Inicio+14, Final+14)

  End If

  Response.Write("</font></p>")

  Conn.Close

  Set Conn = Nothing

Else

  Response.Write("<table border='0' cellspacing='0' cellpading='0'>")

  Response.Write("<tr>")

  Response.Write("<td>")

  Response.Write("<p>")

  Response.Write("Não foi encontrado nenhum registro")

  Response.Write("</p>")

  Response.Write("</td>")

  Response.Write("</tr>")

  Response.Write("</table>")

  Conn.Close

  Set Conn = Nothing

End If

%>

Link para o comentário
Compartilhar em outros sites

  • 0

Erica!!

Até editei este POST, em sua homenagem...

Veja este codigo:

<%
	Response.Expires = 0
%>
<html>
<head>
<title>:: Erica - Forum SB - Pagina&ccedil;&atilde;o de Vetor ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
p {
	font-family: Verdana;
	font-size: 10px;
	color: #000000;
}
a {
	text-decoration: none;
}
-->
</style>
</head>
<body>
<%
	Inicio = Request.Querystring("Inicio")

	If isEmpty(Inicio) Or Not isNumeric(Inicio) Or isNull(Inicio) Then
  Inicio = 0
	Else
  Inicio = CInt(Inicio)
	End If

	cBanco = Server.MapPath("Nwind2000.mdb")	
	Set Conn = Server.CreateObject("AdoDb.Connection")
	strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & cBanco
	Conn.open(strConn)
	RegistroTela = 15

	sSQL = "SELECT ProductName From Products ORDER BY ProductName"

	Set Rs = Server.CreateObject("adodb.recordset")
	Set Rs = Conn.Execute(sSQL)

	If Not Rs.Eof Then
  
  vetor = Rs.GetRows
  Conn.Close
  Set Conn = Nothing
  maxLinhas = UBound(vetor, 2)
  maxColunas = UBound(vetor, 1)
  
  Final = Inicio + 15
  
  Response.Write("Inicio:" & Inicio & "<br>")
  Response.Write("Final:" & Final & "<br>")
  Response.Write("Maximo:" & maxLinhas & "<br>")

  Response.Write("<table align=center border=1>")  
  	while (Inicio < Final)  	
    	Response.Write("<tr>")
    	For C = 0 To 2
      If Inicio <= maxLinhas Then	
      	Response.Write("<td width=220><p>" & vetor(0, Inicio) & "  <b>"& Inicio &"</b>" & "</p></td>")
      	Inicio = Inicio + 1
      Else
      	Response.Write("<td width=220><p>&nbsp;</p></td>")
      	Inicio = Inicio + 1
      End If
    	Next	
    	Response.Write("</tr>")	
  	Wend  

  Response.Write("</table>")
  Response.Write("<br>")
  Response.Write("<p>")
  
  If Inicio > 15 Then
  	Response.Write("<a href=vetor.asp?Inicio=" & (inicio - 30) & ">Voltar :</a>")
  End If

  If Inicio < maxLinhas Then
  	Response.Write("<a href=vetor.asp?Inicio=" & Inicio & ">: Avançar </a>")
  End If

  Response.Write("</p>")
  
	Else
  
  Response.Write("<p>Não há informações na sua pesquisa.</p>")
  Conn.Close
  Set Conn = Nothing
  Response.End()
  
	End If 
%>
</body>
</html>

O Ultimo item do vetor, vai montar a tabela completa, independente de ter ou não conteudo.

Abraços e Boa Sorte!!!

[urso]

Link para o comentário
Compartilhar em outros sites

  • 0
O cliente ficou feliz e meu emprego garantido.....

Yesssssss!!

Um desempregado a menos neste humilde pais.

O Lula devia ler isto e me chamar pra união smile.gif , talvez, possa ainda, salvar este pais.

Erica, como já foi resolvido seu pequenino problema, vou fechar o tópico, qualquer coisa, via PM, peça para reabrir diretamente com qualquer moderador da seção.

Bjão e Boa Sorte!!!

[uRSO]

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...