Retornar Valor Autoincremento - MSQL

Delphi

28/06/2011

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

Curtidas 0

Respostas

Rogerio Merlotti

Rogerio Merlotti

28/06/2011

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
GOSTEI 0
Junior Viesa

Junior Viesa

28/06/2011

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

Rogerio Merlotti

28/06/2011

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

Marcos

28/06/2011

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.
GOSTEI 0
POSTAR