Eu gostaria de recuperar um registro após inserí-lo na base (SQL Server).
O problema é que eu não posso usar o “getMax”, pois esse banco é acessado por vários usuários simultâneamente. Então, nada garante que o último registro é o que eu acabei de inserir.
A API do Java fornece suporte a isso ? Alguma sugestão ?
Não entendi muito bem a sua pergunta, mas tudo bem, uma sugestão não sei se é grotesca, mas la vai, se vc fez a inserção através de um objeto, por exemplo: dao.insert(objeto), é só pegar o objeto de volta sem fazer nenhuma consulta.
Eu gostaria de recuperar um registro após inserí-lo na base (SQL Server).
O problema é que eu não posso usar o “getMax”, pois esse banco é acessado por vários usuários simultâneamente. Então, nada garante que o último registro é o que eu acabei de inserir.
A API do Java fornece suporte a isso ? Alguma sugestão ?[/quote]
[quote=jehjeh]Eu já tinha tentado utilizar o getGeneratedKeys(), mas me deu o seguinte erro:
[code]java.lang.UnsupportedOperationException
at sun.jdbc.odbc.JdbcOdbcStatement.getGeneratedKeys(JdbcOdbcStatement.java:1460)
…
[/code]
O problema é que essa tabela tem um campo que é autoincrement.
E os valores que eu conheço para fazer uma pesquisa, podem retornar não apenas um resultado.[/quote]
O problema não é exatamente a tabela, é o Driver do SQL server que não suporta essa operação (e mais um monte de coisas, ô driver bugado…). Você tá usando o jTDS ou o da Micro$oft?