Galera estou com um problema chato e talvez simples de ser resolvido só não sei como.
Em minha aplicação em alguns momentos ao acessar o banco de dados, seja em um insert, update, select , etc. É lançada a seguinte exception:
Objecthasbeenclosed
Estou utilizando Sql server 2000.
Antes de fechar o Callablestatement , ou ResultSet.
faço,
Em quais momentos ele exibe essa exception ?
vc esta fechando o resultset ?
Licuri
cara sempre que entra neste método.
/** * Fechar CallableStatement e ResultSet */publicvoidcloseCallableStatement()throwsVIMOException{try{if(cs!=null)cs.close();if(rs!=null)rs.close();}catch(Exceptionex){thrownewVIMOException("Problemas ao fechar a callableStatement",ex);}}
Cara o que acontece que este tipo de verificação que eu estou fazendo apenas com o null é furada, pois mesmo fechando o resultSet ou o Statement eles continuam com a instancia na memoria portanto entra dentro do if e tenta fechar novamente, ai que surge o erro.
Tipo não algo como…
rs.isclosed();
Já dei uma olhada na api e não encontrei nada parecido…
Preciso de ajuda mesmo…
valeu…
ramilani12
Vc nao esta fechando um Connection antes ? , prq qndo vc fecha um objeto Connection implicitamente fecha o Statement , ResultSet
Licuri
Não cara estou fechando a conexão depois.
Vc esta me dizendo que eu não preciso fechar o statement e nem o result basta fechar a conexão?!
T
thingol
O correto é fechar na ordem inversa em que as coisas foram abertas. Você pode tentar algo tão simples quanto:
thingol não existe outra forma de verificar se o rs ou stmt são validos?
o que pode ocorrer se eu não fechar o stmt? :roll:
Acredite, acontece o apocalipse se você esquecer de fechar statements e connections, sempre feche seus statements e connections abertos caso não venha a utilizá-los denovo, pois sua aplicação pode cair em Exceptions como o “ORA-01000”, e não voltar a funcionar porque você estourou algum limite, seja de conexões ou de cursores abertos ou então a sua aplicação pode passar a rodar com desempenho inaceitável. Falo por experiência própria :XD: .