COMO RETORNAR ID DO INSERT?

USUARIO.EXCLUIDOS 20/08/2007 19:51:09
#231726
Boa noite galera..

estou com um probleminha...

Após fazer um insert no bando, gostaria que fosse retornado o Id do mesmo.
Qual propriedade devo usar para retornar o id do registro..

pois não estava querendo fazer um select (MAX), sei lah, não acho muito confiavel...

muito obrigado....
USUARIO.EXCLUIDOS 21/08/2007 11:40:12
#231839
Ola Roque, Estou com a mesma dúvida!!!

Por favor alguem nos ajude.

Obrigado

Wagner
USUARIO.EXCLUIDOS 21/08/2007 11:47:22
#231843
HS_ROQUE e WAGNER GARNIZET, gente se vcs estiverem utilizando Oracle isso é bem simple basta dar um select:

SELECT Nome_da_Sequencia.CURRVAL FROM DUAL;

Se for outro DB, a utilização da função MAX, não ira dar erro.

Sds.
USUARIO.EXCLUIDOS 21/08/2007 11:52:59
#231846
SQL Server ou Access 2000 em diante, podem utilizar o SELECT @@IDENTITY, também retornará o último ID (se for autonumeração) utilizado.
USUARIO.EXCLUIDOS 21/08/2007 13:02:55
#231863
Obrigado Cel_Sub7. Utilizei a função Max no Sql 2005 e deu certinho.

Abraços

Wagner
USUARIO.EXCLUIDOS 21/08/2007 16:01:15
#231902
Select Max() nao é muito confiavel se for em um ambiente de rede, e que tenha inclusoes dinamicas, ou seja varias pessoas incluindo...

LITTLEBOY 21/08/2007 16:24:51
#231910
se estiver sendo utilizado sql server eu recomendo o uso de stored procedures, alem de ser mais seguro,este tipo de operação setorna mais facil, rapida e segura

USUARIO.EXCLUIDOS 21/08/2007 17:32:12
#231925
Ola Galera...

então como eu tinha digo, não estava afim de usar o Max, justamente por que a minha aplicação ira ficar na rede...

Referente ao BD, estou usando o Access, mesmo assim o SELECT @@IDENTITY ira funcionar?

Como devo usar, pode ser assim..

dim cod as integer
dim dr as oleDbDataReader
dim cmd as New oleDbCommand

cmd.CommandText = "SELECT @@IDENTITY"
dr = cmd.ExecuteReader

i = dr.Item(0)
Tópico encerrado , respostas não são mais permitidas