Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eletrohoo

Criar "Registro Não Encontrado"

Recommended Posts

Amigos podem me ajudar a criar uma opção de "Registro Não Encontrado" no código abaixo?

 

<%
cnpath="DBQ=" & Server.MapPath("servico.mdb")
DataSource = "Driver={Microsoft Access Driver (*.mdb)}; " & cnpath
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DataSource
Set RS = Server.CreateObject( "ADODB.Recordset" )
RS.ActiveConnection = conn
set rs=conn.execute("select*from ordens where id_aparelhos="&Request.Form("cod")&"")
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você criou uum recorset chamado 'RS', certo?

 

Bom, para tratarmos este recordset, faça assim:

 

If NOT RS.EoF Then
   response.write("REGISTRO ENCONTRADO.")
Else
   response.write("REGISTRO NÃO ENCONTRADO.")
End If

É o uso do EoF, que significa 'End Of File'.

Lendo esse if acima você poderia transformar em uma frase:

"Se NÃO FOR 'final de arquivo no recordset', então imprima "REGISTRO ENCONTRADO", se for, imprima "REGISTRO NÃO ENCONTRADO."

Leia mais aqui:

http://www.w3schools.com/ADO/prop_rs_bofeof.asp

 

Para ler os registros encontrados você poderá usar uma estrutura de loop, veja:

 

If NOT RS.EoF Then
   response.write("REGISTRO ENCONTRADO.")
   While NOT RS.EoF
     response.write(">>>" & rs("campo"))
   Rs.MoveNext
   Wend
Else
   response.write("REGISTRO NÃO ENCONTRADO.")
End If

Dica:

Não esqueça ao final do uso do recordset de fechá-lo. Dessa forma você otimiza o desempenho da sua página e da sua página para com o banco de dados, não causando problemas.

 

Veja como é fácil:

rs.close
set rs = nothing

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você criou uum recorset chamado 'RS', certo?

 

Bom, para tratarmos este recordset, faça assim:

 

If NOT RS.EoF Then
   response.write("REGISTRO ENCONTRADO.")
Else
   response.write("REGISTRO NÃO ENCONTRADO.")
End If

É o uso do EoF, que significa 'End Of File'.

Lendo esse if acima você poderia transformar em uma frase:

"Se NÃO FOR 'final de arquivo no recordset', então imprima "REGISTRO ENCONTRADO", se for, imprima "REGISTRO NÃO ENCONTRADO."

Leia mais aqui:

http://www.w3schools.com/ADO/prop_rs_bofeof.asp

 

Para ler os registros encontrados você poderá usar uma estrutura de loop, veja:

 

If NOT RS.EoF Then
   response.write("REGISTRO ENCONTRADO.")
   While NOT RS.EoF
     response.write(">>>" & rs("campo"))
   Rs.MoveNext
   Wend
Else
   response.write("REGISTRO NÃO ENCONTRADO.")
End If

Dica:

Não esqueça ao final do uso do recordset de fechá-lo. Dessa forma você otimiza o desempenho da sua página e da sua página para com o banco de dados, não causando problemas.

 

Veja como é fácil:

rs.close
set rs = nothing

 

Abraços.

 

Amigo obrigado pela ajuda, funcionou mas quando o registro é "Não Encontrado" é exibido um erro do tipo:

 

ADODB.Field erro '80020009' 
BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual. 
pagina.asp, line 0 

 

Isso porque o resultado exibido está no formato:

 

<%=rs("campo")%>

 

Então mesmo que o resultado seja "Não Encontrado" o código ainda força uma procura pelo campo "campo" e retorna o erro acima. Tem como eu "bloquear" esse "campo" caso o resultado seja "Não Encontrado" sem usar response.write(">>>" & rs("campo"))?

 

Você pode perceber que não entendo de ASP, e por isso peço essa ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não tem registro encontrado não pode mandar exibir algo do banco

 

Não pode ter algo do tipo

 

<%=rs("campo")%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao inves de colocar um response.write("REGISTRO ENCONTRADO.")

dizendo que não foi encontrado, redirecione o user para uma página e nela sim, você tem a mensagem

dá um response.redrect("erro.asp")

essa pode até ser um pop-up, que apos 5 ou 3 seg. fecha automaticamente, ou seja, você pode ter mais inertividade com o user

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não tem registro encontrado não pode mandar exibir algo do banco

 

Não pode ter algo do tipo

 

<%=rs("campo")%>

 

Isso depois da sua linha de condição que foi feita, se quiser manter esse jeito que você está querendo, faça assim:

 

If NOT RS.EoF Then
   'Aqui você poe todo seu codigo HTML com os campos mostrando o registro e chamando o rs("campo")

Else
   response.write("REGISTRO NÃO ENCONTRADO.")
End If

Caso contrário se quiser fazer do jeito do xanburzum, faça assim:

 

If NOT RS.EoF Then
   'Aqui você poe todo seu codigo HTML com os campos mostrando o registro e chamando o rs("campo")

Else
   response.redirect("erro.asp")
End If

Ai você cria a pagina erro.asp com a mensagem de não encontrado

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade o que eu faço, e redirecionar para a pagina principal com parametros na URL, tipo

 

¨response.redirect("administracao.asp?msg=1")

 

nessa pagina recupero a querystring, e dependendo do valor, no nosso caso 1, eu executo um js, que abre um pop-up e que fecha automaticamente após X segundos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode tratar o erro como foi dito acima, mas testa também:

if rs.eof or rs.bof then
response.write "erro"
else 
seu codigo
end if

O redirecionamento também é uma boa ideia, normalmente uso ele desta forma:

IF ERR THEN
response.redirect "erro.asp"
ELSE
seus dados
end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

com o redirecionamento , você tem mais controle e opçãoes para tratar de forma interativa com o user

 

uma dica... sempre gravo os erros em um arquivo de log, tanto erro como tudos os passos do user no site

Compartilhar este post


Link para o post
Compartilhar em outros sites

com o redirecionamento , você tem mais controle e opçãoes para tratar de forma interativa com o user

 

Inclusive gerar relatórios de erros pra você

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.