Statement.executeQuery() cannot be called with a statement that returns a row count

5 respostas
J

Bom dia ! a todos

estou com um problema se alguem puder me ajudar ;

ao usar o comando abaixo Sql , que uso dentro de uma Instrução while ((dadosEntrada = bufReader.readLine()) != null)

conexao.executeSQL("INSERT INTO "                                             // Comando Sql
               +"APP."                                                                                       // Squema Da Tabela
               +"Tipo01 "                                                                                   // Tipo de Tabela
               +"(Nome, Endereco, Numero, Bairro, Cidade, Estado, Cep)"            // Campos Da Tabela
               +" values (" + dados + ")");                                                          // Dados a ser Inseridos Nos Campos Da tabela

InstruçãoSql = INSERT INTO APP.Tipo01 (Nome, Endereco, Numero, Bairro, Cidade, Estado, Cep) values (‘kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk’, ‘Rua prof lurdes lopes romeiro yanuzzi n�35kkkkkkkkkkkkkkkkkk’, ‘[telefone removido]’, ‘Vila Joiakkkkkkkkkkk’, ‘Mogi das Cruzeskkkkkkkkkkkkkkk’, ‘SP’, ‘08000-000’)

recebo a seguinte mensagem de erro

Statement.executeQuery() cannot be called with a statement that returns a row count

ou seja Statement.executeQuery () não pode ser chamado com uma instrução que retorna uma contagem de linha

se alguem puder me ajudar , Fico Grato

Att Javax

5 Respostas

P

Faz com executeUpdate e não executeQuery
Melhor ainda era fazer com PreparedStatement

J

pmlm:
Faz com executeUpdate e não executeQuery
Melhor ainda era fazer com PreparedStatement

Muito Obrigado , pmlm

vou testar

J

JavaX_JavaX:
pmlm:
Faz com executeUpdate e não executeQuery
Melhor ainda era fazer com PreparedStatement

Muito Obrigado , pmlm

vou testar

Amigo , pmlm

estou usando a instrução conforme abaixo , e não está aceitando o metodo indicado por vc

sei que estou fazendo algo errado , vc podeia me indicar oque seria

public void executeSQL(String instrucao) {
       try {
        statement = dbConnection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
        resultset = statement.executeQuery(instrucao);
       }
       catch(SQLException sqlex){
       //System.out.println("InstruçãoSql = "+instrucao);
       JOptionPane.showMessageDialog(null,"nao foi possivel executar = "+sqlex
       +"o SQL  passado foi = "+ sqlex +"o sql passado foi = "+ instrucao) ;
       }
    }

Grato

P

Um INSERT ou um UPDATE não devolvem nenhum resultSet, daí eu ter dito para usar executeUpdate mas no teu código continua executeQuery…

J

Amigo pmlm , sua ajuda foi realmente proveitosa o problema foi resolvido.

erra só retirar resultset como vc mencionou , assim conseguir usar o executeUpdate(instrucao);

Problema resolvido

public void executeSQL(String instrucao) {
       try {
         statement = dbConnection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
       //resultset = statement.executeQuery(instrucao);
         statement.executeUpdate(instrucao);
      }
       catch(SQLException sqlex){
       //System.out.println("InstruçãoSql = "+instrucao);
       JOptionPane.showMessageDialog(null,"nao foi possivel executar = "+sqlex
       +"o SQL  passado foi = "+ sqlex +"o sql passado foi = "+ instrucao) ;
       }
    }

muito grato pela Ajuda

Criado 20 de agosto de 2010
Ultima resposta 20 de ago. de 2010
Respostas 5
Participantes 2