Fala galera, to com o seguinte problema, tenho uma classe q chama outra q se conecta a um bd. No construtor dela tem isso:
bd = new BancoDados();
Vector linha = new Vector();
linha = bd.atualizaBD();
for(int c=0; c<linha.size(); c++) {
senhas.addRow( (Vector) linha.get(c) );
}
Na outra classe…
public Vector atualizaBD() {
conectaBD();
Vector linhas = new Vector();
try{
statement = conexao.createStatement();
String consulta = "SELECT CATEGORIA, LOCAL, DESCRICAO FROM SENHAS WHERE LOGIN='" + login + "' ORDER BY CATEGORIA";
resultSet = statement.executeQuery(consulta);
boolean maisDados = resultSet.next();
ResultSetMetaData dados = resultSet.getMetaData();
do {
linhas.addElement( getProxLinha(dados) );
} while( resultSet.next() );
statement.close();
}
catch(SQLException sqlexc) {
JOptionPane.showMessageDialog(null, sqlexc.toString(), "Erro", 00);
}
return linhas;
}//Fim de atualizaBD
private Vector getProxLinha(ResultSetMetaData dados) throws SQLException {
Vector linhaAtual = new Vector(3);
for (int c=1;c<=dados.getColumnCount();++c)
switch( dados.getColumnType(c) ) {
case Types.VARCHAR:
linhaAtual.addElement( resultSet.getString(c) );
break;
case Types.INTEGER:
linhaAtual.addElement( new Long( resultSet.getLong(c) ) );
break;
}
return linhaAtual;
}//Fim de getProxLinha
Isso faz atualizar uma tabela. Não da nenhum problema na compilação mas quando eu executo aparece The resultSet is not in a row, use next e adiciona normal no bd, sem erros. Mas resultSet ja estava na proxima linha como vcs podem ver no codigo. Mesmo mudando o next() de lugar, ou da pau ou acontece a mesma coisa, alguem poderia dizer onde esta o erro?
:mad: