Retornar Valor Autoincremento - MSQL

28/06/2011

0

Boa noite! Estou desenvolvendo uma aplicação utilizando Delphi 2010 + MYSQL, e para retornar o código do registro gerado, criei uma função, como segue abaixo:   function RetornaIdRegistro: integer;
var
  FSql: TSqlDataSet;
begin
  FSql := TSQLDataSet.Create(nil);   try
    with FSql do
    begin
      SQLConnection := dmServidor.sqlConexao;
      Close;
      CommandText := 'select last_insert_id()';
      Open;       result := Fields[0].AsInteger;
    end;
  finally
    FreeAndNil(FSql);
  end;
end;   O problema que está acontecendo é que a função sempre retorna zero. Pelo banco, quando eu crio um registro manual editando a tabela, após o comit eu executo a linha select last_insert_id() e funciona perfeitamente.    Minha pergunta é: por que pelo delphi retorna sempre zero?   Procurei pela net e não achei nenhuma solução, a não ser "select max(campo) from tabela" ou ainda "select usrs_cod from usuarios order by usrs_cod desc limit 1", que ao meu ver não me parece pertinente.   Se alguém tiver sugestões, por favor poste pois se não encontrar a solução terei que apelar ao que ao meu ver não é pertinente.   Desde já agradeço a atenção de todos.   Abraços.   Rogério
Rogerio Merlotti

Rogerio Merlotti

Responder

Posts

28/06/2011

Rogerio Merlotti

Cometi um pequeno equívoco no título do tópico.   O título correto é "Retornar Valor Incremento - MYSQL".   Tem como alterar o título?   Peço desculpas pelo erro.   Obrigado.   Rogério
Responder

29/06/2011

Junior Viesa

Não sei se é o mais usula mas uma forma de resolver o seu problema seria você dar um select auto_increment from tabela...
Responder

29/06/2011

Rogerio Merlotti

Junior, fui testar a sua dica, mas deu um erro dizendo que o auto_increment é uma coluna desconhecida.
Responder

05/07/2019

Marcos

Junior, fui testar a sua dica, mas deu um erro dizendo que o <FONT size=2>auto_increment é uma coluna desconhecida.</FONT>

estou com mesmo problema, preciso desse retorno mais também só vem zero.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar