[resolvido ]Problemas ao deletar itens da tabela!

Nao sei o q esta de errado ja tentei masi nao consigo ver onde estou errando talves alguem possa me ajudar…!!

ta tudo ok esta chamando o metodo mais so responde a mensagem de erro …!!

public boolean  Deletar() throws SQLException{

    boolean resposta;

    try{
    //sql pra deletar os dados da tabela
SQL_delete=St.executeQuery("delete from CLIENTES ");
    resposta=true;
    }
    catch(Exception ex){
      ex.printStackTrace();
      resposta=false;
      Mensagem_erro="BANCO MYSQL CONECTADO...\n\r "+" \n\r ERRO 4... AO DELETAR OS DADOS..!";
    }
    return resposta;
}

e o erro e o seguinte …



Java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
        at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:412)
        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1297)

ja tentei mudar o executeQuery() mais tambem nao deu muito certo nao

o q devo usar em ???
ou o q devo faser pra dar certo ??

Fala brow,

So uma observacao, voce quer deletar TODOS os registros da tabela?
Se nao for essa a sua vontade, precisa colocar uma clausula WHERE na instrucao SQL.

Agora, quanto ao erro, veja isso aqui:

Abraco!

SIM … to atualizando a tabela toda vez q esse metodo e chamado …

ai eu deleto todos os itens dela e depois fasso um insert e cadastro tudo de novo …!!!

por q sao dois bancos de dados e uma tabela tem q ser exatamente igual a outra … e acho q assim e mais facil …

ou nao ???

e ja tentei colocar assim…

SQL_delete=St.executeUpdate("delete * from CLIENTES ");

e tambem nao deu certo

Juntando as duas duas opções erradas, é executa update, mas sem o *

St.executeUpdate("delete from CLIENTES ");  

Fala brow,

O amigo acima falou corretamente, o asterisco NAO eh usado para comandos de delete.

Quanto a sua politica de atualizacao, por que voce precisa manter duas tabelas identicas?
Seria backup?

Abraco.

Não … e q a empresa tem um site … e no site o banco de dados e o Mysql e tambem tem um banco local e o firebird
so q esse dois bancos de dados tem q ser atualizados de 30 em 30 minutos pois existem interaçoes dos clintes com a empresa pelo site e pelo telefone … e o servidor web nao fica aqui na empresa … por isso que as tabelas tem q estar identicas nos dois bancos por q se nao vai dar inconsistencia de dados para o cliente ou para a empreza …

espero ter explicado melhor … e descupa pela demora …
vou testar a sugestao de vcs e colocar aqui …


SQL_delete=St.executeUpdate("delete from CLIENTES ");

da dando erro …!!!

antes mesmo de compilar a aplicaçao essa linha de comando fica sublinhada de vermelho com um simbolo de erro na frente …!!

INCOMPATIBLE TYPES,
REQUIRED:JAVA.SQL.RESOLTSET;
FOUD:INT

e eu to importando a biblioteca assim…!

import java.sql.*;
import java.sql.ResultSet;
import javax.swing.JOptionPane;

o ta contecendo ??

ESSE E O CODIGO COMPLETO DA CLASSE !!!


public class Conexao_Mysql {

//Declaraçao da variaveis
   private String Mensagem_erro="";
   private String cliente_nome;
   private Connection Con=null;
   private Statement St=null;
   private ResultSet SQL_cliente=null;
   private ResultSet SQL_delete=null;

public  Conexao_Mysql(){

    }

// metodo de conexao com o banco de dados ... e e aqui depois de conectar
//ele chama o metodo pra deletar toda a tabela prar depois reconstruir
public boolean  Conexao_mysql () throws SQLException{
    boolean test;
   try{
    //driver e url do banco de dadods e construtores para a conexao com o banco
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            Con= DriverManager.getConnection("jdbc:mysql://localhost/nomeBANCO", "USER","SENHA");
            St= Con.createStatement();
            Mensagem_erro=" OK... CONECTADO COM O BANCO MYSQL  ";
            
          Deletar();
        test=true;
        }

catch(Exception ex){// ERRO DE CONEXIÇAO COM BANCO
      ex.printStackTrace();

      Mensagem_erro="ERRO 2 ..."+ ex.toString();

      test=false;
 }
       // finaliza a conexao com o banco de dados
 finally{
    if(St !=null) St.close();
    if(Con !=null) Con.close();
 }


 return test;

}
// metodo q deleta todos os dados da tabela

    public boolean Deletar() throws SQLException {

        boolean resposta;

        try {
            //sql pra deletar os dados da tabela
            SQL_delete = St.executeUpdate("delete from CLIENTES ");
            resposta = true;
        } catch (Exception ex) {
            ex.printStackTrace();
            resposta = false;
            Mensagem_erro = "BANCO MYSQL CONECTADO...\n\r " + " \n\r ERRO 4... AO DELETAR OS DADOS..!" + ex.toString();
        }
        return resposta;
    }

 public String getMensagem_erro() {
        return Mensagem_erro;
    }

    public void setMensagem_erro(String Mensagem_erro) {
        this.Mensagem_erro = Mensagem_erro;
    }


Fala brow,

O problema aqui é o seguinte, voce definiu SQL_delete como um ResultSet,
mas o metodo executeUpdate() retorna um inteiro.

Da uma olhada aqui:
http://download.oracle.com/javase/1.4.2/docs/api/java/sql/Statement.html

Abraco!

ACHEI O ERRO …!!

VALEU … depois q vc coloco ai kenneth eu testei aqui e deu certinho .!!

era q eu nao tinha colocado certinho …!!
o certinho e assim .!

int executeUpdate = St.executeUpdate("delete from CLIENTES ");

valeu ai gete OBRIGADAO …!!!

to com outro prolblema agora … q nao tem muito a ver com esse nao …
mais tema ver com banco de dados … o q eu fasso …??

eu crio outro topico ou escrevo aqui mesmo …

e que nao quer duplicar as tabelas …
agora so ta deletando … nao esta atualizando ta deixando tudo em branco

e ai …
fasso outro topico ou posto aqui mesmo minha duvid a???

Cara,

É muito vago “nao ta duplicando a tabela”…

Voce ta fazendo essa insercao DEPOIS de remover os dados antigos?
Esta dando algum erro?

Ja resolvi todos os problemas …!!

obrigadao ai a quem me ajudou …!!!