ERRO no DELETE

4 respostas
vinidiax

Tenho o seguinte procedimento para remover do banco, ele remove certinho, o programa continua, mas ele da o seguinte erro:

Procedimento:

public void removeProdutos(String palavra){
   Connection con = null; 
    try 
         { 

             String driverName = "org.postgresql.Driver";            
             Class.forName(driverName); 
             String serverName = servidor;
             String mydatabase = "luguipi";
             String url = "jdbc:postgresql://" + serverName +  "/" + mydatabase;
             String username = "postgres";
             String password = "postgres";    

             con = DriverManager.getConnection(url, username, password);
            
            java.sql.Statement stmt = con.createStatement();
            stmt.executeQuery("delete from produtos WHERE referencia = '"+palavra.toUpperCase()+"'");      
       
         //esse JOption ele nao aparece!!!! 

           JOptionPane.showMessageDialog(null,"Remoção Efetuada com Sucesso!","SUCESSO",1);
         } 
        catch (ClassNotFoundException ex) {
            Logger.getLogger(Metodos.class.getName()).log(Level.SEVERE, null, ex);
        }         catch(SQLException e) 
         { 
             // se houve algum erro, uma exceção é gerada para informar o erro 
             e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou 
         } 
         finally 
         { 
            try 
            { 
               con.close(); 
            } 
            catch(SQLException onConClose) 
            { 
                System.out.println("Houve erro no fechamento da conexão"); 
                onConClose.printStackTrace(); 
            } 
         } // fim do bloco try-catch-finally     
    }

esse é o erro:

org.postgresql.util.PSQLException: Nenhum resultado foi retornado pela consulta.

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:255)

at Controle.Metodos.armazenaCadastroProdutos(Metodos.java:762)

at Interface.Produtos.CadastroProdutos.botaoCadastrarActionPerformed(CadastroProdutos.java:289)

at Interface.Produtos.CadastroProdutos.access$200(CadastroProdutos.java:19)

at Interface.Produtos.CadastroProdutos$3.actionPerformed(CadastroProdutos.java:110)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6041)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5806)

at java.awt.Container.processEvent(Container.java:2058)

at java.awt.Component.dispatchEventImpl(Component.java:4413)

at java.awt.Container.dispatchEventImpl(Container.java:2116)

at java.awt.Component.dispatchEvent(Component.java:4243)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

at java.awt.Container.dispatchEventImpl(Container.java:2102)

at java.awt.Window.dispatchEventImpl(Window.java:2440)

at java.awt.Component.dispatchEvent(Component.java:4243)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

4 Respostas

T

executeQuery não é o mais indicado para delete, utilize executeUpdate(sql).

vinidiax

com o executeUpdate(sql);

ele executou o JOption depois mas o erro de nenhum resultado foi retorenado pela consulta ainda continua.
o que pode ser??

T

Ve se assim funciona:

try{ stmt.executeUpdate("delete from produtos WHERE referencia = '"+palavra.toUpperCase()+"'"); }catch(PSQLException ex){ //Não faz nada }

A excessão está sendo lançada porque o sql não está “atualizando” nenhuma linha do banco, daí retorna a excessão avisando que não atualizou nada, entendeu o porque da excessão?

vinidiax

entendi o porque, mas ele sempre vai retornar esse tipo de erro?

Criado 21 de outubro de 2008
Ultima resposta 21 de out. de 2008
Respostas 4
Participantes 2