[firebase-br] Valor de AutoIncremento

Fausto fausto.s.a em uol.com.br
Sáb Dez 19 07:30:28 -03 2009


Em 17/12/2009 16:27, Augusto junior escreveu:
> Ola...
>     Uso o MDO sim ... pena que o projeto parou , ne?
>          vou ver como funciona ...
> muito obrigado
> Guto
>
> 2009/12/17 José Mauricio Barbisan Zottis<bzottis em ig.com.br>
>
>> OLÁ, se vc usa o MDO vc pode colocar no Dataset o campo, o generator e
>> onnewrecord que ele já tras o valor ,
>> se vc que usar SP
>>
>> CREATE PROCEDURE PROC_RETORNA_GEN_CODIGO_ANUAL
>> returns (
>>     atual integer)
>> as
>> BEGIN
>>   ATUAL = GEN_ID(Gen_codigo_anual,1);
>> SUSPEND;
>> END^
Eu utilizo DBExpress, e uso esta função aqui:
function RetornaID(Tabela: string): Integer;
var
  SqlAux:TSQLDataSet;
begin
   SqlAux := TSQLDataSet.Create(Self);
   SqlAux.SQLConnection := NomeDaSuaConexão;
   SqlAux.CommandText := 'SELECT GEN_ID(GEN_' + Tabela + '_ID, 1) AS 
CODIGO FROM RDB$DATABASE';
   SqlAux.Open;
   Result := SqlAux.FieldByName('CODIGO').asInteger;
   SqlAux.Close;
   SqlAux.Free;
end;
Creio que possa adaptá-la para o mdo, pois ela ficaria bem generica..
Basta chama-la no evento BeforePost.
-- 
Fausto Alves
Skype:faustoalves
msn:faustoalves em com4.com.br
Franca-SP
Enviado pelo Mozilla Thunderbird
http://br.mozdev.org/thunderbird





Mais detalhes sobre a lista de discussão lista