Estou inserindo um registro no banco com a coluna cd_documeto como chave primária e autoincremento. Porém ao executar o resultset o mesmo fica vazio e não consigo pegar a 1ª String que é o cd_documento.
Alguém tem uma idéia do que esteja acontecendo?
No Mysql funciona ok, já no sql server 2000 não funciona. Estou usando o jtds.
public void inserirDocumento(Documento doc) throws SQLException {
{
PreparedStatement stmt;
String sql = "insert into documento values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
stmt = connection.prepareStatement(sql);
stmt.setString(1, doc.getDs_documento());
stmt.setString(2, doc.getCd_tpdocumento());
stmt.setString(3, doc.getCd_status());
stmt.setString(4, doc.getCd_resp_atual());
stmt.setString(5, doc.getObs_documento());
stmt.setString(6, doc.getDt_criacao());
stmt.setString(7, null);
stmt.setString(8, doc.getDt_movimentacao());
stmt.setString(9, null);
stmt.setString(10, doc.getCd_depto_atual());
stmt.setString(11, null);
stmt.setString(12, doc.getCd_origem());
stmt.setString(13, doc.getCd_usu_cri());
stmt.setString(14, doc.getCd_depto_cri());
stmt.setString(15, null);
stmt.execute();
stmt = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
System.out.println(rs);
rs.next();
setAutoincrement(rs.getString(1));
}
}
Erro:
SEVERE: null
java.sql.SQLException: No current row in the ResultSet.
at net.sourceforge.jtds.jdbc.JtdsResultSet.getColumn(JtdsResultSet.java:270)
at net.sourceforge.jtds.jdbc.JtdsResultSet.getString(JtdsResultSet.java:918)