Tenho um filtro em jsp que enviado um dado que é texto para buscar em uma tabela, quando fazia o select utuilizando um número, estava funcionando, mas com texto não funciona mais.
Na parte javascript está certo, verifique a maneira como você está lendo o parâmetro “id”, deve ser algo como
request.getParameter(“idCliente”)
E outra coisa, se o campo cliente for do tipo char na tabela você deve colocar o texto entre aspas simples. Não conheço MySQL mas no Oracle seria assim:
rs = st.executeQuery("SELECT * FROM Contato WHERE cliente = ’ " + id + " ’ ");
rs = st.executeQuery("SELECT * FROM Contato WHERE cliente = " " + id + “” ");
Blz?
V
vinucho
Assim:
rs = st.executeQuery(“SELECT * FROM Contato WHERE cliente = “” + id + “””);
Não funcionou também.
J
julianostr
Que tipo de coluna é ‘cliente’ na tabela Contato?
Se for number esquece, só vai funcionar com número.
Se for char (varchar2/string), deveria funcionar, mas coloque uma mensagem para depurar o conteúdo da variável idCliente.
Note que no seu exemplo de URL o parâmetro está sendo passado com espaço em branco e o browser substitui isso por %20 tantos espaços em branco quantos ele encontrar.
Eentão, veja se o request está retornando %20 ou realmente espaço em branco.
Se não tiver, adicione a seguinte linha no início da sua página .jsp:
<% @ page contentType=“text/html” %>
V
vinucho
Olá,
É do tipo VARCHAR(45).
Printei o request e mostra apenas espaço em branco:
cliente x.
Tentei adicionar <% @ page contentType=“text/html” %>, mas nem carrega o jsp.
J
julianostr
Putz, então, acabaram-se minhas tentativas.
Não sei mais o que fazer não pois não conheço MySQL.
Faça o que a mensagem de erro sugere, leia o manual.
Mas antes de tudo, imprima o conteúdo da string SQL já com o valor do request e jogue isso no seu console SQL pra ver se ocorre o mesmo erro.