RECUPERAR O ULTIMO ID GRAVADO COM BANCO MYSQL

CAPLATERO 21/10/2011 18:19:35
#387353
Boa tarde galera,

Estou gravando registros em 2 tabelas e preciso recuperar o id da primeira tabela para gravar na segunda tabela para a mesma seção. Alguém pode me ajudar???
XXXANGELSXXX 21/10/2011 18:26:53
#387355
é so pesquisar.. tipo..


SELECT LAST_INSERT_ID() AS vULTIMO from NOMEDASUATABELA group by vULTIMO[Ô]
CAPLATERO 21/10/2011 18:33:06
#387357
XXANGELSXXX
eu esqueci de comentar que estou usando o vb 2010 express, esse comando tb funciona nele?
XXXANGELSXXX 21/10/2011 18:34:33
#387358
claro uai, isso é como pesquisar no mysql, ou seja, a sintaxe para pesquisar no banco é essa.!
JESUEL.OLIVEIRA 21/10/2011 18:40:00
#387359
Use, após o insert (execute)

   
Set rsEmpresa = CONN.Execute(sSQL)
rsEmpresa.Open ([Ô]SELECT @@IDENTITY FROM cadempresa[Ô])
int_Pesquisa_grid = rsEmpresa(0)

PROFESSOR 21/10/2011 18:45:14
#387361
Pelo fórum, suponho o uso da ADO. Para retornar o último ID, o MySQL mantém o @@identity , que deve ser consultado pelo mesmo Command que acabou de efetuar a inclusão. Algo mais ou menos assim:

Dim Rs As ADO.Recordset
Dim i As Long
...
cm.CommandText = [Ô]INSERT INTO tabela (campoum,campodois,campotrês) VALUES ([ô]TESTE[ô],[ô]TESTANDO[ô],[ô]TESTADO[ô])[Ô]
cm.Execute
cm.CommandText = [Ô]SELECT @@IDENTITY[Ô]
Set Rs = cm.Execute
i = Rs.Fields(0).value

Se estiver utilizando o próprio recordset conectado para a atualização / inclusão, basta coletar o valor do campo de auto-numeração, como em:
Dim identidade As Long
...
mRs.AddNew()
mRs([Ô]CampoDois[Ô]) = [Ô]Teste[Ô]
mRs([Ô]CampoTres[Ô]) = [Ô]Testando[Ô]
mRs([Ô]CampoQuatro[Ô]) = #19/10/1966#
mRs.Update
identidade = mRs([Ô]CampoAutonum[Ô])
...

Em ambos os casos, o ID é retornado, e com ele você grava os dados da tabela-filhote.

P.S.: Isso é no Sun/Oracle MySQL. No Microsoft® SQL Server, ao invés de usar o @@Identity, utilize a SCOPE_IDENTITY(), para não correr o risco de retornar o último ID gerado por outro usuário que esteja acessando com a mesma seção do pool. O @@Identity, ainda que não seja um padrão efetivo, funciona também no SQL SERVER CE, no MS-Access etc etc.
CAPLATERO 21/10/2011 18:51:46
#387363
Valeu pessoal consegui.

Obrigado
XXXANGELSXXX 21/10/2011 20:31:54
#387373
Resposta escolhida
finalize o topico, e pontue quem te ajudou.!
Tópico encerrado , respostas não são mais permitidas