Pessoal,
Estou tentando excluir uma linha da minha tabela, so que quando eu faco isso ele exclui toda a tabela, minha query esta assim:
[code]
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);
}[/code]
PQ será, a PJ é minha PK, mas ja mudei e nao adiantou nada, tentei deletar por outro registro e nada …
valew
DELETE FROM tbl_cliente WHERE pj='"+pj+"'
?
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
[code]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);
}
}[/code]
valew
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?
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
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?
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
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…