ResultSet
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.
Grata desde já.
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
Curtidas 1
Respostas
Diego Alves
23/08/2010
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){ }
GOSTEI 0
Diego Alves
23/08/2010
Assim vai exibir o erro... posta a mesagem que aparece!!!
GOSTEI 0
Diego Alves
23/08/2010
Assim vai exibir o erro... posta a mensagem que aparece!!!
GOSTEI 0
Ana Paula
23/08/2010
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.
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.
GOSTEI 0
Diego Alves
23/08/2010
Adiciona ... throws SQLException, ClassNotFoundException {
Só pra garantir colocar Class.forName do postgree!!
Testa aiii... aqui foiii!
GOSTEI 0
Ana Paula
23/08/2010
Testei. Aqui não retornou nada.
GOSTEI 0
Davi Costa
23/08/2010
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 ]
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 ]
GOSTEI 0
Ana Paula
23/08/2010
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!
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!
GOSTEI 0
Ulisses Silva
23/08/2010
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
GOSTEI 0
Diego Alves
23/08/2010
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); }
GOSTEI 0
Dyego Carmo
23/08/2010
Deu certo ?
GOSTEI 0
Douglas Almeida
23/08/2010
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.
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.
GOSTEI 0