Amigos,
Após um comando INSERT com o campo ID autoincremento, em PHP tempos a função mysql_insert_id() que usada imediatamente após o INSERT traz o ID que foi gerado pelo BD naquela conexão, em Harbour não temos essa função na HBMYSQL, pelo menos não com esse nome. Como poderemos saber qual o ID o autoincremento do BD gerou?
Pegar o ID após INSERT - mysql_insert_id()
Moderador: Moderadores
Pegar o ID após INSERT - mysql_insert_id()
Esqueci de postar a solução que consegui na epoca! Para ficar registrado, fiz a seguinte função:
Dessa forma consigo o id antes de inserir e o uso no INSERT, assim sei qual foi o id usado para controlar as demais inserções nas tabelas filhas.
Código: Selecionar todos
Function GetNextInsert_id(cTabela)
Local nNextId := 0
Local oQuery, oRow
Local sql := "SELECT next_insert_id('" + HMG_LOWER(cTabela) + "') as next_id;"
oQuery := ExecutaQuery(sql)
if ExecutouQuery(@oQuery,sql)
if !oQuery:NetErr()
if ( oQuery:LastRec() > 0 )
oRow := oQuery:GetRow(1)
nNextId := oRow:FieldGet('next_id')
end
end
end
Return (nNextId)
Nilton Medeiros
nilton@sistrom.com.br
nilton@sistrom.com.br
Pegar o ID após INSERT - mysql_insert_id()
Apenas para deixar registrado, outra forma que sempre funcionou comigo:
Código: Selecionar todos
SELECT id FROM tabela ORDER BY id DESC LIMIT 1;
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
