Erro no mysql

18 respostas
C

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

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;
    }
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); 
            }
<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>

18 Respostas

Hebert_Coelho

Tá faltando espaços entre os + da sua query.

C

não é isso não, ja troquei e continuou dando o mesmo erro, mas obrigado pela atenção

victormagno
pstmt.setInt(1,'%'+ nome_ose +'%');

Não deveria ser setString?

C

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

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 ?";

ViniGodoy

Tópico movido para o fórum de persistência.

Hebert_Coelho

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 ?";

Pois é, eu tentei avisar… mas as vezes é preciso rabiscar para a pessoa notar…

ViniGodoy

Outra coisa… seu like está sobre cod_ose. Não deveria ser algo como nome_ose?

C

Obrigado, desculpe o encomodo…

ViniGodoy

?

Agora funcionou? O problema era só esse mesmo?

C

então, copiei o seu codigo, e continuou dando o mesmo erro, o obrigado foi pela resposta, grato pela atenção

ViniGodoy

Trocou o cod_ose no like do WHERE como falei?

Por que aparentemente você queria usar um nome ali, não um código.

C

ta dando null agora … mais valeu mesmo pela atenção muito obrigado

ViniGodoy

Posta o erro.

C

Erro:null

C

Erro:null

victormagno

Oi, tenta ser um pouco mais descritivo… em que momento esse erro acontece?

C

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…

Criado 22 de janeiro de 2013
Ultima resposta 23 de jan. de 2013
Respostas 18
Participantes 4