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

(Resolvido) Problema com IF e Response.Write


dcoder

Pergunta

Salve galera...

Veja minha query:

categoria = Request.QueryString("categoria")
sql = "SELECT * FROM cat WHERE categoria LIKE '"& categoria &"' "
Set exe = conexao.execute(sql)
Agora para exibição montei este bloco:
<%
 codigo = exe("cod")
 nome_cli = exe("nome")
 IF  exe.EOF THEN

 'IF exe.BOF THEN
 'IF exe("categoria") = exe.eof then
 Response.write "nenhum registro encontrado"
 Else
  Response.write"<a href='visualizar_emp.asp?cod=" & codigo & " '>"&nome_cli&"</a>"
 end if

%>

O problema está na exibição se não haver a categoria correspondente no bd, quando não tem o registro ele simplesmente não me mostra nada, era pra exibir "nenhum registro encontrado".

Oque eu fiz de errado nessa bagaça ?

Obrigado.

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

5 respostass a esta questão

Posts Recomendados

  • 0

Verifique se o IIS está configurado para mostrar erros (se quiser, tente um código absurdo do tipo variavel=1/0).

O que ocorre ali é que você está tentando pegar um valor do recordset antes de verificar se ele possui registros. Se ele não possuir registros ocorre um erro. Se o IIS não estiver configurado para exibir erros, ele pode mostrar uma mensagem do tipo "Ocorreu um erro no servidor" ou simplesmente retornar uma página em branco (é o que provavelmenteocorre aí).

Tente assim:

IF  exe.EOF THEN
Response.write "nenhum registro encontrado"
Else
  codigo = exe("cod")
  nome_cli = exe("nome")
  Response.write"<a href='visualizar_emp.asp?cod=" & codigo & " '>"&nome_cli&"</a>"
end if

Link para o comentário
Compartilhar em outros sites

  • 0

A questão é que você está verificando isso no recordset... entenda que se tem algum dado no RS seu app vai dar falha...

Talvés uma melhor seja correr essa verificação direto em algum campo do bd, algo do tipo:

if exe("cod") = "" then
response.write "registro não encontrado"
else
response.write "registro encontrado"
end if

Será que ajudou?

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

Ok rafael, vou testar aqui..

Obrigado ae

.

.

.

É, não deu certo mesmo, fiz as modificações e nada.

<%

  codigo = exe("cod")
  nome_cli = exe("nome")

 if exe("cod") = "" then

 'IF exe.BOF THEN
 'IF exe("categoria") = exe.eof then
 Response.write "nenhum registro encontrado"
 Else

  Response.write"<a href='visualizar_emp.asp?cod=" & codigo & " '>"&nome_cli&"</a>"
 end if



'if exe("cod") = "" then
'response.write "registro não encontrado"
'else
'response.write "registro encontrado"
'end if



%>
Continua não exibindo a mensagem, ele ignora o response após o if. tentei assim como no comentário acima:
'if exe("cod") = "" then
'response.write "registro não encontrado"
'else
'response.write "registro encontrado"
'end if

mais ele da registro encontrado mesmo não tendo nada no bd...talvez não tenha entendido oque você disse, vou continuar tentando..

abraços..

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

  • 0

Fala meu amigo, consegui resolver o problema, insisti naquilo e funcionou apenas mudei o tratamento no IF e usei a variavel nome_cli que busca o nome "NOME" no campo do meu bd veja:

<%

  codigo = exe("cod")
  nome_cli = exe("nome")

 if nome_cli <> "" then
 Response.write "<a href='visualizar_emp.asp?cod=" & codigo & " '>"&nome_cli&"</a>"

 Else

 Response.write "nenhum registro encontrado"

 end if



%>

Agora SE a variavel nome_cli for <>"" então, ele me retorna o campo que contém a informação que preciso.

SENAO

me retorna a mensagem "nenhum registro encontrado"

Já era, obrigado ae pessoal :D

Editado por Jonathan Queiroz
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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...