Ref.: Hoje é o dia dos erros (ME AJUDEM POR FAVOR)

Atente para o texto comentado.

        try {
            ResultSet rs = BancoDados.FabricaCosulta(ProcedimentosSQL.SQL(), cnn);
            
            while (rs.next()) {
                System.out.println("");
                for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
                    System.out.print(rs.getString(rs.getMetaData().getColumnName(i)) + " - ");
                    
                    //Se tendo mostrar denovo o mesmo registro dá erro. QUE MERDA ISSO HEIN!
                    //Quem pode me explicar o pq. disso?
                    System.out.print(rs.getString(rs.getMetaData().getColumnName(i)) + " - ");
                }
            }
            
            rs.close();
        } catch (SQLException errorSQL) {
            JOptionPane.showMessageDialog(null, errorSQL.getMessage(), "Erro SQL", JOptionPane.ERROR_MESSAGE);
            errorSQL.printStackTrace();
        }

Este código

 rs.getMetaData().getColumnName(i) 

retorna o none da coluna por um índice

e este código

rs.getString(rs.getMetaData().getColumnName(i))

retorna o valor da coluna pelo nome otido.

Bom trabalho.

Blz!

Mas o que quero dizer é o seguinte:

Quando (Como vou dizer!), quando me refiro ao objeto pela primeira vez, ele me mostra o resultado, quanto passo pela segunda, o resultado some, é como se o mesmo não mais fizesse parte do ResultSet.

Pra mim isso é um BUG do JAVA.

Para resolver isso teria que criar uma variável e atribuir esse valor a ela, para que o mesmo não se perdesse, afim de poder trabalha-lo posteriormente.

Desculpe se não fui muito claro.

Conto com sua ajuda

Bom deixa me ver uma coisa o seu for não deveria começar em 0 no lugar de 1?

Não!

A primeira referência é ‘1’!

Bom!

Tem sido assim!