Ola,
Nunca utilize resultsets diretamente. Faça a classe de conexao com o SGBD criar objetos baseados na sua ResultSet, coloque estes numa lista e utilize estes na sua interface.
Ola,
Nunca utilize resultsets diretamente. Faça a classe de conexao com o SGBD criar objetos baseados na sua ResultSet, coloque estes numa lista e utilize estes na sua interface.
Dentre varios problemas, um grave eh que vc esta utilizando o mesmo resultset em todo o programa, como o fi_rsdes … isso vai te causar problemas mesmo. O correto eh voce criar o ResultSet localmente, nunca esquecendo de dar um close() apos pegar os dados.
Rafael
Caros colegas,
Estou com o seguinte problema, tenho um combobox que é preenchido com um resultset de uma table extrangeira porém ao preencher o combo com os dados desta tabela e tentar navegar através da table principal esta me da a mensagem resultset is closed.
Nesta classe possuem dois resultsets 1 da table mandataria e outro da table extrangeira que preenche o combobox. Executo primeiramente o result set da table extrangeira prenchendo o combobox e em seguida o da table mandataria, na primeira execução o processo é realizado e os campos da internalframe preenchidos porém com a mensagem que resultset is closed.
alguem pode me ajudar?
Parte do código
public void pv_pcampo() {
try {
if(movr == "F") {
fi_rsdad.previous();
}
else {
fi_rsdad.next();
}
fi_txf01.setText(fi_rsdad.getString("CDC_COD"));
fi_txf03.setText(fi_rsdad.getString("CDC_DAT"));
fi_txf04.setText(fi_rsdad.getString("CDC_VAL"));
ncdcon = fi_rsdad.getInt("CDC_DES");
fi_cbcta.setSelectedItem(pv_retdes()); //comentando esta linha a func funciona
if(fi_rsdad.getInt("CDC_FEC") == 1)
fi_cbfec.setSelected(true);
else
fi_cbfec.setSelected(false);
if (fi_rsdad.isLast())
ft_btn06.setEnabled(false);
else
ft_btn06.setEnabled(true);
if (fi_rsdad.isFirst())
ft_btn05.setEnabled(false);
else
ft_btn05.setEnabled(true);
}
catch(SQLException ex)
{ System.out.println(ex);}
}
public void pv_lcampo() {
fi_txf01.setText("");
fi_txf03.setText("");
fi_txf04.setText("");
}
public void pv_atcampo() {
cSql = "SELECT CDC_COD, CDC_DES, CDC_DAT, CDC_VAL, CDC_FEC FROM CDC_CONT";
fi_rsdad = fi_ConSql.Exec(cSql);
}
public int pv_retcod(){
int ccdcon = 0;
cSqlDes = "SELECT HSD_COD FROM HSD_DESP WHERE HSD_DES ='"+
fi_cbcta.getSelectedItem()+"'";
fi_rsdes = fi_ConSql.Exec(cSqlDes);
try {
fi_rsdes.next();
ccdcon = fi_rsdes.getInt("HSD_COD");
fi_rsdes.close();
}
catch (SQLException e) {
e.printStackTrace();
}
return ccdcon;
}
public String pv_retdes(){
String cdscon = null;
try {
cSqlDes = "SELECT HSD_DES FROM HSD_DESP WHERE HSD_COD ="+ncdcon;
fi_rsdes = fi_ConSql.Exec(cSqlDes);
fi_rsdes.next();
cdscon = fi_rsdes.getString("HSD_DES");
fi_rsdes.close();
} catch (SQLException e) {
e.printStackTrace();
}
return cdscon;
}
}
[quote=pcalcado]Ola,
Nunca utilize resultsets diretamente. Faça a classe de conexao com o SGBD criar objetos baseados na sua ResultSet, coloque estes numa lista e utilize estes na sua interface.[/quote]
não compreendi e para melhor entendimento envio a classe