Olá ta dando esse erro no meu codigo e nao to conseguindo enxergar o erro.
Erro:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘cod_ose like 79’ at line 1
[code] public Ose buscaporOse(Integer nome_ose)throws Exception{
OpenDatabase();
String SQL= "select * "
+ "from ose,cliente,servico "
+ "where ose.cod_cliente=cliente.cod_cliente "
+ “AND ose.cod_servico=servico.cod_servico”
+ “AND cod_ose like ?”;
pstmt=con.prepareStatement(SQL);
pstmt.setInt(1,’%’+ nome_ose +’%’);
rs=pstmt.executeQuery();
Ose o= null;
while(rs.next()){
o=new Ose();
o.setCod_ose(rs.getInt(“cod_ose”));
o.setNome(rs.getString(“nome”));
o.setNomeServico(rs.getString(“nomeServico”));
o.setSituacao(rs.getString(“situacao”));
o.setObservacao(rs.getString(“observacao”));
}
return o;
}[/code]
[code]else if(action.equalsIgnoreCase(“buscaporOse”)){
try{
Integer nome_ose=Integer.parseInt(request.getParameter(“nome_ose”));
OseBD ob = new OseBD();
Ose o = ob.buscaporOse(nome_ose);
if(o.getCod_ose()>0){
request.getRequestDispatcher("osesConsulta.jsp").forward(request, response);
} else {
request.setAttribute("msg", "Ose não encontrada");
request.getRequestDispatcher("oses.jsp").forward(request, response);
}[/code]
<form action="controleOse.jsp?action=buscaporOse" method="post">
<label for="nome_ose">Digite o codigo da ose:</label><br />
<input type="search" name="nome_ose" id="nome_ose" value="" />
<input type="submit" value="Buscar" /><br /><br />
</form>
Tá faltando espaços entre os + da sua query.
não é isso não, ja troquei e continuou dando o mesmo erro, mas obrigado pela atenção
pstmt.setInt(1,'%'+ nome_ose +'%');
Não deveria ser setString?
não, pois é o codigo… então é Int… ele puxa um numero e nao uma string… tanto que no metodo ele declara Integer… obrigado pela atenção e a cabei de testar com string nao deu certo
Na linha 06 do código que você postou, falta espaço antes de fechar aspas.
Para evitar erros como esse, eu geralmente coloco o espaço antes, assim:
String SQL= "SELECT *"
+ " FROM ose,cliente,servico"
+ " WHERE ose.cod_cliente=cliente.cod_cliente"
+ " AND ose.cod_servico=servico.cod_servico" //Aqui faltava o espaço.
+ " AND cod_ose like ?";
Apesar de que aí cheira melhor usar JOIN:
String SQL= "SELECT *"
+ " FROM ose ose"
+ " INNER JOIN cliente ON ose.cod_cliente = cliente.cod_cliente"
+ " INNER JOIN servico ON ose.cod_servico = servico.cod_servico"
+ " WHERE cod_ose like ?";
Tópico movido para o fórum de persistência.
[quote=ViniGodoy]Na linha 06 do código que você postou, falta espaço antes de fechar aspas.
Para evitar erros como esse, eu geralmente coloco o espaço antes, assim:
String SQL= "SELECT *"
+ " FROM ose,cliente,servico"
+ " WHERE ose.cod_cliente=cliente.cod_cliente"
+ " AND ose.cod_servico=servico.cod_servico" //Aqui faltava o espaço.
+ " AND cod_ose like ?";
Apesar de que aí cheira melhor usar JOIN:
String SQL= "SELECT *"
+ " FROM ose ose"
+ " INNER JOIN cliente ON ose.cod_cliente = cliente.cod_cliente"
+ " INNER JOIN servico ON ose.cod_servico = servico.cod_servico"
+ " WHERE cod_ose like ?";
[/quote]Pois é, eu tentei avisar… mas as vezes é preciso rabiscar para a pessoa notar…
Outra coisa… seu like está sobre cod_ose. Não deveria ser algo como nome_ose?
Obrigado, desculpe o encomodo…
?
Agora funcionou? O problema era só esse mesmo?
então, copiei o seu codigo, e continuou dando o mesmo erro, o obrigado foi pela resposta, grato pela atenção
Trocou o cod_ose no like do WHERE como falei?
Por que aparentemente você queria usar um nome ali, não um código.
ta dando null agora … mais valeu mesmo pela atenção muito obrigado
Oi, tenta ser um pouco mais descritivo… em que momento esse erro acontece?
então victor esse erro ocorre quando eu clico em pesquisar, não sei se você ja olhou a primeira pagina, la está os codigos…