Erro no mysql

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

Posta o erro.

Erro:null

Erro:null

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…