Olá, estou precisando fazer algumas mudanças num projetinho que fiz há algum tempo usando técnicas nada produtivas, como vocês verão…está dando um erro no UPDATE…
[code]String sql = “UPDATE fixo SET descricao = '” + taDesc.getText() + “’,”+ “valor=” + tfValor.getText() + 
“,” + “local=’” + tfLocal.getText() + “’,”+ “obs=’” + taObs.getText() + “’,” 
+ “situacao=’” + comboSituacao.getSelectedItem() + “’,” + "'Where codigo = " + tfCod.getText();
        ca.statement.execute(sql);
 
[/code]ERRO 
*check the manual thats corresponds to your Mysql server for the right sintax to use near "Where codigo=1’  at line 1 
Muito Obrigado
         
         
           
        
            
            
            
         
         
             
             
          
       
      
        
        
          Opa, acho que vc colocou uma aspa(’) a mais la do lado da clausula where. 
Supondo que teu campo tfCod seja String deveria ficar assim:
String sql = "UPDATE fixo SET descricao = '" + taDesc.getText() + "',"+ "valor=" + tfValor.getText() +   
                    "," + "local='" + tfLocal.getText() + "',"+ "obs='" + taObs.getText() + "',"  
                    + "situacao='" + comboSituacao.getSelectedItem() + "'," + "Where codigo = '" + tfCod.getText() + "'"; 
Caso seja int:
String sql = "UPDATE fixo SET descricao = '" + taDesc.getText() + "',"+ "valor=" + tfValor.getText() +   
                    "," + "local='" + tfLocal.getText() + "',"+ "obs='" + taObs.getText() + "',"  
                    + "situacao='" + comboSituacao.getSelectedItem() + "'," + "Where codigo = "  tfCod.getText();
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          …então continua o mesmo erro…
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Porque você não aproveita e limpa o código de uma vez ? Monta a SQL em uma String só, ao invés de concatenação use os placeholders (ex: “codigo = ?”) e passe os parâmetros através de um PreparedStatement. Melhorando a legibilidade do código facilita você a achar o erro.
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
            String sql = "UPDATE fixo SET descricao = ?,valor=?,local=?,obs=?,situacao=? WHERE codigo = ?";
        try {
         
            PreparedStatement pstm = (PreparedStatement) new Conexao().getConexao().prepareStatement(sql);
            pstm.setString(1, taDesc.getText());
            pstm.setDouble(2,Double.parseDouble(tfValor.getText()));
            pstm.setString(3, tfLocal.getText());
            pstm.setString(4, taObs.getText());
            pstm.setString(5, (String)comboSituacao.getSelectedItem());
            pstm.setInt(6,Integer.parseInt(tfCod.getText()));
            pstm.executeUpdate();
            JOptionPane.showMessageDialog(null, "Alterado");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "erro ao tentar alterar o registro" + e);
        }
    } 
Valeu rmendes, estava com preguiça de alterar o projetinho mal feito…obrigado.
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          [quote=Jrmanzini][code] 
String sql = “UPDATE fixo SET descricao = ?,valor=?,local=?,obs=?,situacao=? WHERE codigo = ?”; 
try {
        PreparedStatement pstm = (PreparedStatement) new Conexao().getConexao().prepareStatement(sql);
        pstm.setString(1, taDesc.getText());
        pstm.setDouble(2,Double.parseDouble(tfValor.getText()));
        pstm.setString(3, tfLocal.getText());
        pstm.setString(4, taObs.getText());
        pstm.setString(5, (String)comboSituacao.getSelectedItem());
        pstm.setInt(6,Integer.parseInt(tfCod.getText()));
        pstm.executeUpdate();
        JOptionPane.showMessageDialog(null, "Alterado");
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, "erro ao tentar alterar o registro" + e);
    }
}
 
[/code] 
Valeu rmendes, estava com preguiça de alterar o projetinho mal feito…obrigado.[/quote]
só de limpar já funcionou ?
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            pmlm  
            
           
           
          
              
                Fevereiro 29, 2012,  1:13pm
               
               
          #8 
           
         
        
          O que resolveu foi mesmo tirar a virgula antes do WHERE…