ResultSet

23/08/2010

0

Boa tarde a todos!

Estou utilizando um resultSet que retorna para minha aplicação se o registro procurado existe ou não no banco de dados.
Quando faço a consulta diretamente no banco um resultado é gerado, mas o resultSet não me retorna nada.
Estou usando o postgres.

Abaixo o código.

    public boolean existenciaDaAnalise(Analise a) throws SQLException{
        String sql = "SELECT idanalise FROM analise WHERE idamostraanalise = ?";

        PreparedStatement ps = Conexao.getPreparedStatement(sql);
        ps.setInt(1, a.getIdDaAmostra());

        ResultSet rs = ps.executeQuery();
        
        while(rs.next()){

            a.setIdDaAnalise(rs.getInt("idanalise"));

            ps.close();

            rs.close();
            return true;
        }

        ps.close();
        rs.close();
        return false;
    }


Grata desde já.
Ana Paula

Ana Paula

Responder

Posts

23/08/2010

Diego Alves

Já tentou fazer utilizando!!!  
 
public boolean existenciaDaAnalise(Analise a) throws SQLException{
 
 
try{
 
String sql = "SELECT idanalise FROM analise WHERE idamostraanalise = ?";

        PreparedStatement ps = Conexao.getPreparedStatement(sql);
        ps.setInt(1, a.getIdDaAmostra());

        ResultSet rs = ps.executeQuery();
        
        while(rs.next()){

            a.setIdDaAnalise(rs.getInt("idanalise"));

            ps.close();
            rs.close();
            return true;
        }

        ps.close();
        rs.close();

     return false;
    }
catch(Exception e){
 
}
Responder

23/08/2010

Diego Alves

Assim vai exibir o erro... posta a mesagem que aparece!!!
Responder

23/08/2010

Diego Alves

Assim vai exibir o erro... posta a mensagem que aparece!!!
Responder

23/08/2010

Ana Paula

Diego,

O Java não retorna nenhum erro.
O problema é que no postgres o select me apresenta resultados e o resultset não retorna nada. É como se o registro que procuro não estivesse cadastrado no banco.

Já conferi se estou acessando o banco correto, troquei o jar do postgres mas nada funcionou.

Grata a atenção.

Responder

23/08/2010

Diego Alves

Adiciona ...  throws SQLException, ClassNotFoundException {   Só pra garantir colocar Class.forName do postgree!!   Testa aiii... aqui foiii!      
Responder

24/08/2010

Ana Paula

Testei. Aqui não retornou nada.
Responder

24/08/2010

Davi Costa

Não sei se entendi direito e o método Conexao.getPreparedStatement(sql); mas não vi nesse código
mandando por vc onde foi aberta a conexão.
Dá uma verificada nisso e também tenta usar algum alias, na consulta e ainda olha também o
schema que está no seu banco e testa na query, se for o public põe algo como
select * from public.tabela.
Espero te ajudado.

Att
Davi Gomes da Costa
Desenvolvedor Pleno

WebSite: http://www.ivia.com.br

IVIA ® Inovação e Tecnologia
[ CMMI 2 + ISO 9001:2008 + MPS.BR E ]
Responder

24/08/2010

Ana Paula

Bom dia, Davi!

Eu acredito que o problema não esteja na conexão pois faço outras consultas utilizando a mesma conexão e não tenho problemas.

Obrigada pela dica!
Responder

24/08/2010

Ulisses Silva

Complementando as informações dos colegas, coloque um breakpoint na linha do While, inicie sua aplicação em modo debug e verifique o conteúdo do objeto ResultSet na linha anterior. Caso esteja vazio, verifique se a consulta foi montada de forma correta.   []'s
Responder

24/08/2010

Diego Alves

O seu Idanalise só tem um registro certo?! Talvez não precisa colocar while...coloque if! Veja o que fiz... só mudei a select praticamente e a base de dados! Espero que ajude!  
public boolean existenciaDaAnalise(Analise a) throws SQLException, ClassNotFoundException{
        String sql = "SELECT LoginUsuario FROM bankcontrol.usuario WHERE idUsuario = ? ";
        Class.forName("com.mysql.jdbc.Driver");
        cn = DriverManager.getConnection(connection.CONEXAO);
        PreparedStatement ps = cn.prepareStatement(sql);
        ps.setString(1, login);
        ResultSet rs = ps.executeQuery();
        
        while(rs.next()){
            ps.close();
            rs.close();
            return true;
        }
        ps.close();
        rs.close();
        return false;
    }
 
   
try {
            boolean msg = existenciaDaAnalise("1");
            JOptionPane.showMessageDialog(null,"Valor: " + msg);
        } catch (SQLException ex) {
            Logger.getLogger(index.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(index.class.getName()).log(Level.SEVERE, null, ex);
        }
Responder

26/08/2010

Dyego Carmo

Deu certo ?

Responder

26/12/2018

Douglas Almeida

Galera, abri um topico para corrigir um problema que estou encontrando ao retornar dados do resultset, mas até agora não me deram retorno, por isso decidi postar aqui para ver se alguém me responde.

Minha duvida é o seguinte, estou criando uma aplicação Android para contagem de estoque com conexão direta com o banco de dados Oracle.

Obs.: já li diversos tópicos a respeito de criticas sobre esse assunto, mas o aplicativo irá rodar apenas dentro da rede interna da empresa e pretendo instalar apenas no tablet adquirido para esse fim.

Continuando, realizei a consulta no banco de dados e através do Resulset alimento um ContentValues, no entanto, o Resultset só adiciona 10 registros(a tabela consultada possui mais de 3.000 registros) no meu ContentValues. No caso do código abaixo ele me retorna "Produtos não Incluídos!".

Segue código abaixo onde realizo a consulta e inclusão.


public void selecionarOpcao(View view) {
DB db = new DB(host, bd, port, usr, pass);
switch (view.getId()) {
case R.id.contagem:
startActivity(new Intent(this, Empresa.class));
break;
case R.id.carregar:
String query2 = "SELECT * FROM TGFPRO ORDER BY DESCRPROD";
ResultSet resultSet = db.select(query2);

try{
ContentValues contentValues = new ContentValues();
try{

banco.getWritableDatabase().delete("TGFPRO", null, null);

while (resultSet.next() ){
contentValues.put("CODPROD", resultSet.getInt("CODPROD"));
contentValues.put("DESCRPROD", resultSet.getString("DESCRPROD"));
contentValues.put("CODVOL", resultSet.getString("CODVOL"));

banco.getWritableDatabase().insert("TGFPRO", null, contentValues);
}

Toast.makeText(this, "Produtos Atualizados com sucesso!!"+resultSet.getRow(), 1).show();
} catch (Exception e) {
Toast.makeText(this, "Produtos não Incluídos!", 1).show();
}
} catch (Exception e) {
Toast.makeText(this, "Produtos não carregados!", 1).show();
}
break;
}
}

Desde já agradeço a todos.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar