Recuperar registro automaticamente ao inserí-lo [resolvido]
7 respostas
J
jehjeh
Pessoal,
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.
Valeu,
Paulo
Mauricio_Linhares
jehjeh:
Pessoal,
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 ?
Pra pegar um result set com as chaves que o banco criou pra fazer a insersão na tabela.
J
jehjeh
Eu já tinha tentado utilizar o getGeneratedKeys(), mas me deu o seguinte erro:
java.lang.UnsupportedOperationException
at sun.jdbc.odbc.JdbcOdbcStatement.getGeneratedKeys(JdbcOdbcStatement.java:1460)
......
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.
J
jehjeh
Optei por utilizar uma solução alternativa …
De qualquer forma, valeu pelas dicas. Abraço.
Mauricio_Linhares
jehjeh:
Eu já tinha tentado utilizar o getGeneratedKeys(), mas me deu o seguinte erro:
java.lang.UnsupportedOperationException
at sun.jdbc.odbc.JdbcOdbcStatement.getGeneratedKeys(JdbcOdbcStatement.java:1460)
......
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.
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?