Olá a todos,
Estou com o seguinte erro: [quote]Operation not allowed after ResultSet closed[/quote]
Eu sei o que isso significa, que não é permitido fazer operações após o ResultSet ser fechado.
OBS: TODAS AS CONEXÕES DEVEM SER COM CONTROLE DE TRANSAÇÃO
No meu código eu faço o seguinte.
Faço um loop onde percorro o que tenho no meu banco externo (conxão 1), se for para inserir eu abro outra conexão com o banco local (conexão 2) e busco o que tem nele, ai faço um loop nos retornos, ai a cada loop no retorno eu já havia aberto outra conexão com banco local (conexão 3), ai faço um update.
Certo aqui vai meu código:
while(...){
....
....
// Alterando no banco local
SQLAltera = "SELECT a.id_pedido, a.nr_sequencial " +
" FROM tb_pedido a " +
" WHERE a.id_pedido >= '"+ resultado.getString("id_pedido") +"' " +
" ORDER BY a.id_pedido DESC";
ResultSet resultadoAltera = conexaoLocalB.getStatement().executeQuery(SQLAltera);
while(resultadoAltera.next())
{
String SQLTemp = "UPDATE tb_pedido " +
" SET id_pedido = '"+ (resultadoAltera.getInt("id_pedido") + 1) +"', " +
" nr_sequencial = '"+ (resultadoAltera.getInt("nr_sequencial") + 1) +"' " +
" WHERE id_pedido = '"+ resultadoAltera.getString("id_pedido") +"' ";
conexaoLocalB.getStatement().executeUpdate(SQLTemp);
}
}
SE eu usar da forma acima da o erro que lhe falei, erro de ResultSet fechado, POREM SE eu fazer com essa linha
conexaoLocalC.getStatement().executeUpdate(SQLTemp);
Ele da erro de Duplicate Entry Key, pois na busca da conexão B ele acha X itens, e na do C, ele não acha, ai vai dar update da pau.
Como posso resolver isso?