publicstaticArrayListlistarGrupo()throwsSQLException{PreparedStatementps=null;ResultSetrs=null;Stringsql=null;ArrayListlistaGrupo=null;Connectionconn=null;try{conn=DBConnection.getConnection();sql="select cd_empresa_grsoc,upper(nm_fantasia_empresa)nm_fantasia_empresa from tbod_empresa where cd_empresa in ("+"select distinct cd_empresa_grsoc from tbod_empresa) order by cd_empresa_grsoc ";ps=conn.prepareStatement(sql);rs=ps.executeQuery();listaGrupo=newArrayList();while(rs.next()){Parametrop=newParametro();p.setCodigo(rs.getInt("cd_empresa_grsoc"));p.setDescricao(rs.getString("cd_empresa_grsoc")+'-'+rs.getString("nm_fantasia_empresa"));listaGrupo.add(p);}}catch(SQLExceptione1){e1.printStackTrace();}finally{if(conn!=null){conn.close();}if(ps!=null){ps.close();}if(rs!=null){rs.close();}}returnlistaGrupo;
o tipo de dados da coluna cd_empresa_grsoc é char e o setcodigo é int...o que devo fazer?
o tipo de dados da coluna cd_empresa_grsoc é char e o setcodigo é int…o que devo fazer?
Tem mesmo certeza que perguntou isso?
Obtenha o valor como String e faça o parse para Integer…
D
drsmachado
Um detalhe: Essa consulta está assim mesmo?
sql = "select cd_empresa_grsoc,upper(nm_fantasia_empresa)nm_fantasia_empresa from tbod_empresa where cd_empresa in ("+
select distinct cd_empresa_grsoc from tbod_empresa) order by cd_empresa_grsoc ";
Roda?
D
drsmachado
Outro detalhe, aqui a exceção se refere à linha 161. O que tem nesta linha?
at br.com.odontoprev.implantacao.DAO.GrupoDAO.listarGrupo(GrupoDAO.java:161)
R
Rodrigomazza
kkkkkkk
por incrivel que parece, sim roda...
então tentei fazer um parse int mas olha o que acontece:
Vc deve ter reparado que ele cria um objeto p = new parametro da uma olhada:
public class Parametro {
public Parametro() { super(); }
protected int cd_parametro;
protected int cd_outro;
protected String ds_parametro;
protected String ds_outro;
protected double vl;
public double getVl() {
return vl;
}
public void setVl(double vl) {
this.vl = vl;
}
public void setCdOutro(int n){
cd_outro = n;
}
public void setDsOutro(String n){
ds_outro = n;
}
public void setCodigo(int n) {
cd_parametro = n;
}
public void setDescricao(String a) {
ds_parametro = a;
if (ds_parametro != "" || ds_parametro != null) {
ds_parametro = ds_parametro.toUpperCase();
}
}
public int getCodigo(){
return cd_parametro;
}
public int getOutro(){
return cd_parametro;
}
public String getDescricao(){
return ds_parametro;
}
public String getDsOutro(){
return ds_outro;
}
}
D
drsmachado
Rodrigomazza:
kkkkkkk
por incrivel que parece, sim roda…
então tentei fazer um parse int mas olha o que acontece:
while (rs.next()) {
Parametro p = new Parametro();
p.setCodigo(rs.getInt(Integer.parseInt("cd_empresa_grsoc")));
p.setDescricao(rs.getString("cd_empresa_grsoc")+'-'+rs.getString("nm_fantasia_empresa"));
listaGrupo.add(p);
}
As coisas dão errado quando alguém faz algo errado.
Releia o que eu escrevi, com atenção e siga os passos um a um.
eu acessei o banco e não sei se pode ser isso mas este dado esta com espaço apos o ultimo digito…
D
drsmachado
A classe String permite que você elimine espaços desnecessários utilizando o método trim().
Talvez
Integer.parseInt(parse.trim());
Resolva…
R
Rodrigomazza
foi o que fiz…mas usei o trim no select.
obrigado pela paciencia…
D
drsmachado
Ah, entendi.
É que não sei se todo banco de dados suporta trim, por isso sugiro deixar a cargo de quem conheço, no caso, java.
Engraçado você agradecer a paciência. O pessoal normalmente reclama que eu sou boçal e tals.
Como você mostrou boa vontade e humildade, eu segui como achei que deveria. O mérito é teu, afinal, ninguém nasce sabendo e, perguntar, é fundamental.