Possuo um software em java que faz conexão com um BD Firebird. Neste banco tem uma tabela chamada “filaleitura” então repliquei a estrutura dela para formar uma “filaleitura1” e estou enfrentando o seguinte problema:
Quando tento gravar os dados na tabela replicada, aparece o erro “the resultSet is not in a row, use next”. O que posso estar fazendo de errado? Sou iniciante e não tenho experiência com firebird.
Meu resultSet está declarado da seguinte forma: protected ResultSet rs=null;
Tenho 2 classes envolvidas nesse processo:
1ª Classe
protected boolean gravaFila(int iX, String sCod_Conjunto)
{
//Gravar o conjunto selado na fila para a
//iX é a primeira posição disponível para cadastro na tabela FILALEITURA ( varia de 1 a 12 )
//iX é 1 se todas as posições estão disponíveis (NUM_ESTADO=0) ou
//n se NUM_ESTADO=0 com NUM_ESTADO!=0 para n-1
//Verifica se sCod_Conjunto já foi cadastrado
sSQLqu = ("SELECT * FROM FILALEITURA1 WHERE (COD_CONJUNTO='"+sCod_Conjunto+"')");
try
{
if (con_LD==null || con_LD.isClosed())
{
if (!conectaLD())
{
JOptionPane.showMessageDialog(null,"4 - Falha: Connection no BD");
return false;
}
}
con_LD.setAutoCommit(false);
rs = (stmt_LD.executeQuery(sSQLqu));
if (rs.next())
{
JOptionPane.showMessageDialog(null,"Já existe registro para esse Conj. Selado ( posição "+getPosSuporte(rs.getInt("NUM_POS"))+") !");
rs.close();
return false;
}
rs.close();
//Verificar se sCod_Conjunto foi cadastrado
//17-04-2014 - bloquear cadastro na fila de cs lidos
sSQLqu = ("SELECT * FROM LEITURADOSIMETRO WHERE (COD_CONJUNTO='"+sCod_Conjunto+"' AND (ESTADO_LEITURA=0))");
rs = (stmt_LD.executeQuery(sSQLqu));
if (!rs.next())
{
//17-04-2014 - bloquear cadastro na fila de cs lidos
JOptionPane.showMessageDialog(null,"Esse Conjunto NÃO está disponível para Leitura !","Comunique ao Responsável Técnico :",0);
rs.close();
return false;
}
rs.close();
//Cadastra na Fila se Houver Posição Disponível
rs = stmt_LD2.executeQuery("SELECT * FROM FILALEITURA1 WHERE (NUM_POS="+iX+" AND NUM_ESTADO=0)");
if (rs.next())
{
rs.close();
sSQLup = ("UPDATE FILALEITURA1 SET COD_CONJUNTO='"+sCod_Conjunto+"',DET_LIDO='XX',NUM_ESTADO=2 WHERE (NUM_POS="+iX+" AND NUM_ESTADO=0)");
stmt_LD.executeUpdate(sSQLup);
}
else
{
rs.close();
JOptionPane.showMessageDialog(null,"Não Há Posição Disponível !");
return false;
}
}
catch(java.lang.Exception ex)
{
JOptionPane.showMessageDialog(null,""+ex.getMessage(),"Falha ao tentar gravar na Fila de Leitura",0);
return false;
}
finally
{
try
{
con_LD.commit();
}
catch(java.lang.Exception ex)
{
JOptionPane.showMessageDialog(null,""+ex.getMessage() ,"Erro ao tentar commit",1);
}
}
//gravou satisfatóriamente
return true;
}
2ª Classe
protected boolean gravaUltDetLido(String DetL ,String sConj)
{
//22-05-2009
//Gravar o Ult. Det. Lido na fila para a
//Cadastro na Tabela FILALEITURA
try
{
if (con_LD==null || con_LD.isClosed())
{
if (!conectaLD())
{
JOptionPane.showMessageDialog(null,"5 - Falha: Connection no BD");
return false;
}
}
con_LD.setAutoCommit(false);
sSQLup = ("UPDATE FILALEITURA1 SET DET_LIDO='"+DetL+"' WHERE COD_CONJUNTO='"+sConj+"'");
stmt_LD.executeUpdate(sSQLup);
}
catch(java.lang.Exception ex)
{
JOptionPane.showMessageDialog(null,""+ex.getMessage(),"Falha ao tentar gravar na Fila de Leitura - gUDL",0);
b31.setEnabled(false);
JTFFILA.requestFocus();
return false;
}
finally
{
try
{
con_LD.commit();
}
catch(java.lang.Exception ex)
{
JOptionPane.showMessageDialog(null,""+ex.getMessage() ,"Erro ao tentar commit",1);
}
}
//gravou satisfatóriamente
return true;
}