Problemas para excluir linha

7 respostas
A

Pessoal,
Estou tentando excluir uma linha da minha tabela, so que quando eu faco isso ele exclui toda a tabela, minha query esta assim:

String query = "DELETE * FROM tbl_cliente WHERE pj='"+pj+"'";
                System.out.println(query);
                int ResultadoDaExclusao = stmt.executeUpdate(query);
                
                stmt.close();
                con.close();
                
                if (ResultadoDaExclusao != 1) {
                    javax.swing.JOptionPane.showMessageDialog(instanciafrmPrincipal, "Problemas na exclusão dos dados do funcionario", "Sistema de Frigorifico", javax.swing.JOptionPane.WARNING_MESSAGE);
                }
                else {
                    javax.swing.JOptionPane.showMessageDialog(instanciafrmPrincipal, "Cliente excluido com sucesso", "Sistema de Frigorifico", javax.swing.JOptionPane.WARNING_MESSAGE);
                }

PQ será, a PJ é minha PK, mas ja mudei e nao adiantou nada, tentei deletar por outro registro e nada ....

valew

7 Respostas

sergiolopes

DELETE FROM tbl_cliente WHERE pj='"+pj+"' ?

A

nao
da um erro de "Problemas no acesso ao banco" quando eu digito o campo que eu quero ele da o erro, pode ser que seja um erro bobo, pq eu fiz isso as 2 da manha e nao vi o erro

veja se voce encontra

if(pj.length() == 0){
            javax.swing.JOptionPane.showMessageDialog(instanciafrmPrincipal, "Digite o código da Pessoa Juridica", "Sistema de Frigorifico", javax.swing.JOptionPane.WARNING_MESSAGE);
        }
        else{
            try{
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con = DriverManager.getConnection(urlODBC, "", "");
                Statement stmt = con.createStatement();
                
                String query = "DELETE FROM tbl_cliente WHERE pj='"+pj+"'";
                System.out.println(query);
                int ResultadoDaExclusao = stmt.executeUpdate(query);
                
                stmt.close();
                con.close();
                
                if (ResultadoDaExclusao != 1) {
                    javax.swing.JOptionPane.showMessageDialog(instanciafrmPrincipal, "Problemas na exclusão dos dados do funcionario", "Sistema de Frigorifico", javax.swing.JOptionPane.WARNING_MESSAGE);
                }
                else {
                    javax.swing.JOptionPane.showMessageDialog(instanciafrmPrincipal, "Cliente excluido com sucesso", "Sistema de Frigorifico", javax.swing.JOptionPane.WARNING_MESSAGE);
                }
            }catch(java.sql.SQLException e){
                javax.swing.JOptionPane.showMessageDialog(instanciafrmPrincipal, "Problemas no acesso ao banco de dados", "Sistema de Frigorifico", javax.swing.JOptionPane.WARNING_MESSAGE);
                String MostraErro;
                MostraErro = "Problemas no acesso ao banco de dados !\nAs mensagens retornadas são:"+
                "\nSQLState: " + e.getSQLState() +
                "\nMensagem: " + e.getMessage() +
                "\nCódigo do erro: " + e.getErrorCode();
            }catch(java.lang.Exception err){
                javax.swing.JOptionPane.showMessageDialog(instanciafrmPrincipal, "O driver JDBC:ODBC não foi encontrado", "Sistema de Frigorifico", javax.swing.JOptionPane.WARNING_MESSAGE);
            }
        }

valew

ranophoenix

1 - Já testou fazer a conexão ODBC diretamente?

2 - O nome da conexão ODBC q vc está passando em: Connection con = DriverManager.getConnection(urlODBC, "", ""); está correto?

A

esta sim, eu consigo inserir os dados na tabela normalmente, o que esta suregindo é o problema dele deletar toda a tabela e não somente a linha.

Tenho 6 registro, quando eu faco isso ele apaga os 6 e nao somente o que eu pedi para apagar

ranophoenix

o campo pj realmente é a chave primária? Quando está inserindo os dados na tabela vc já reparou se esta coluna está apresentando valores diferentes para cada registro?

A

sim ele é a chave primaria, ele nao deixa eu adicionar um valor igual, coloquei if/else para barrar valores redundantes. Eu estava cansado, mas imagino que meu erro esteja na logica tb ! mas nao consegi visualizar

dyorgio

cara…
ao que tudo indica vc esta deletando mesmo tudo…
pois vc esta atribuindo a clausura WHERE uma
igualdade poxa… pj=’"+pj+"’…
tente melhorar sua logica…

Criado 17 de maio de 2005
Ultima resposta 17 de mai. de 2005
Respostas 7
Participantes 4