Duvida de Principiante!

Amigos…

Estou agora entrando na Linguagem Java por isso desculpas antecipadas por qualquer bobagerm falada(digitada)…

Criei este codigo… que pega os valores de uma tabela e adicionada(insere) em outra tabela de um mesmo Banco de Dados
para efeito de estudos…

   public Connection conF;
   public Statement stmF, inputFsetor;
   public ResultSet rsAsetor, rsAbens, rsFsetor, rsFbens;

    Class.forName("org.firebirdsql.jdbc.FBDriver");
    conF = DriverManager.getConnection(urlF,usuarioF,senhaF);
    stmF = conF.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

    try
    {
        rsAsetor = stmF.executeQuery("SELECT * FROM DBF_SETOR ORDER BY COD_UNID");
        inputFsetor = conF.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

        while (rsAsetor.next())
        {
            String val1 = rsAsetor.getString("COD_UNID");
            String val2 = rsAsetor.getString("DES_UNID");
            String sql = "INSERT INTO SETORES (CODIGO, DESCRICAO) VALUES ('0"+val1+"','"+val2.trim()+"')";
            inputFsetor.executeUpdate(sql);
        }
    } catch (SQLException ex)
    {
        JOptionPane.showMessageDialog(null,"Dados não Localizados!!!"+ex);
    }

So que ele executa o WHILW uma unica vez e dá o seguinte erro:
Erro…org.firebirdsql.jdbc.FBSQLException: The result set is closed

Toda ajuda e bem vinda…
Grato.

para cada iteração do While imprime os resultados para ver se estão iguais ao do banco

ao invés de executeUpdate, se não me engano tem o ExecuteSQL tenta ele

A vantagem é que com ExecuteSQL acho que pode usar query montada, ou seja, escrever sua própria query quase igual você faria no SQL.

CaianaPB
Verifique o seu WHILE, no caso ele vai até que o ponteiro passe para o próximo registro, acho que seu desejo é que ele execute até o final da lista “rsAsetor” (rsAsetor.size() - ou o que possui a quantidade de registros), no final do comando coloque o “next” para que o ponteiro aponte o próximo registro .

Uma dica quando utilizar consultas no código coloque os nomes dos campos que irá utilizar de fato, isso melhora a resposta da tua consulta.

att

Luiz Marcelo

Amigos…

tente as dicas que vcs indicaram e nada funcionou…

troque ate o codigo para este aqui… e mesmo assim aconteceu o erro abaixo…

      do
      {
      String val1 = rsAsetor.getString("COD_UNID");
      String val2 = rsAsetor.getString("DES_UNID");
      String sql = "INSERT INTO SETORES (CODIGO, DESCRICAO) VALUES ('0"+val1+"','"+val2.trim()+"')";
      rsAsetor.next();
      inputFsetor.executeUpdate(sql);

      rtConvUA.setText(String.valueOf(qdaLin));
      qdaLin++;
      }
      while (rsAsetor.isLast());

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at org.firebirdsql.jdbc.AbstractResultSet.isLast(AbstractResultSet.java:1199)
        at Principal.jButton1ActionPerformed(Principal.java:304)
        at Principal.access$100(Principal.java:22)
        at Principal$2.actionPerformed(Principal.java:177)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6267)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6032)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

espero que tenha alguma solução… quero apenas percorrer uma tabela armazenar os valores e gravar em outra…
Grato…

olhe a segunda linha

 at org.firebirdsql.jdbc.AbstractResultSet.isLast(AbstractResultSet.java:1199)  

o erro se encontra aqui # while (rsAsetor.isLast());