.hmmessage P { margin:0px; padding:0px } body.hmmessage { font-size: 10pt; font-family:Verdana }

Olá Pessoal, no meu Curso D2007 DBX4 FB2.0 eu mostrei uma maneira de retornar o próximo ID no Firebird com o uso de Generator. Acontece que a partir daí recebi inúmeros de pessoas querendo saber como fazer no MySql. Então vamos lá.
 
No MySql eu trabalho com uma tabela chamada Generator com dois campos TableName e Value, assim coloco la os registros com o ID:
 
Cliente    10
Perfil       5
Produtos 6
 
E por ai vai....
 
Na hora de pegar dou um update somo mais 1 e retono.
 
function GenID(tablename: String): Integer;
var
  Qry: TSQLQuery;
  Transaction: TDBXTransaction;
begin
  try
    try
      Transaction := DBAcesso.DBXConnection.BeginTransaction(TDBXIsolations.ReadCommitted);
      DBAcesso.ExecuteDirect('UPDATE SEQUENCE SET NEXTVALUE = NEXTVALUE+1 WHERE TABLENAME = '+QuotedStr(tablename));
      Qry := TSQLQuery.Create(Self);
      Qry.SQLConnection := DBAcesso;
      Qry.SQL.Add('SELECT NEXTVALUE FROM SEQUENCE WHERE TABLENAME = '+QuotedStr(tablename));
      Qry.Open;
      Result := Qry.Fields[0].AsInteger;
      DBAcesso.DBXConnection.CommitFreeAndNil(Transaction);
    except
      DBAcesso.DBXConnection.RollbackFreeAndNil(Transaction);
    end;
  finally
    FreeAndNil(Qry);
  end;
end;
 
E isso ai pessoal, taí mais uma QUICK TIP. Até a próxima !!!