[firebase-br] Campo auto incremento

Francisco Thiago de Almeida jeandeadlucky em yahoo.com.br
Seg Jan 10 14:39:45 -03 2005


Olha, ante do ApplyUpdates, você faz o seguinte

1- Incrementa o generator, pega o valor dele e atribui a uma variável
     select gen_id(generator,1) as campo from rdb$database
2- Atribui o valor desta variável ao campo chave...
3- Mostra a mensagem com o número retornado...

Algo como
var
  li_PK :integer;
begin
with TSQLDataSet.Create(nil) do
  try
    SQLConnection := Self.SQLConnection;
    CommandText := 'select gen_id(generator,1) as campo from rdb$database'
    Open;
    li_PK := Fields[0].AsInteger;
    Close;
    DataSet.FieldByName('Chave').AsInteger := li_PK;
    DataSet.Post;
    DataSet.ApplyUpdates(0);
  finally
    Free;
  end;


----- Original Message ----- 
From: "Marlon" <bobbyjr em brturbo.com>
To: <lista em firebase.com.br>
Sent: Monday, January 10, 2005 2:15 PM
Subject: Re: [firebase-br] Campo auto incremento


> Thiago, vc poderia me explicar melhor a sua ideia?
>
> Francisco Thiago de Almeida escreveu:
>> Acho que não funciona.
>> Se durante o intervalo de sua inserção, outra transação incluir um 
>> registro, ele vai te retornar um valor falso.
>> O que você pode fazer é incrementar o generator no before Post e atribuir 
>> o valor retornado na chave de sua tabela.. assim você teria o valor no 
>> seu sistema
>>
>> Espero ter ajudado
>>
>> Thiago
>>
>> ----- Original Message ----- From: "Maicon Gabriel" 
>> <maicongabriel em gmail.com>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Monday, January 10, 2005 12:34 PM
>> Subject: Re: [firebase-br] Campo auto incremento
>>
>>
>> Utilize a instrução:
>> SELECT GEN_ID(NOME_DO_GENERATOR, 0) FROM RDB$DATABASE
>>
>> onde "NOME_DO_GENERATOR" é o nome do seu generator e 0 (zero), indica
>> que o generator não receberá incremeto, sendo assim, retornará o valor
>> atual contido no generator!
>>
>>
>> On Mon, 10 Jan 2005 12:17:03 -0200, Marlon <bobbyjr em brturbo.com> wrote:
>>
>>> Olá,
>>>
>>>    Tenho uma trigger para o auto incremento com generator etc.. estou
>>> utilizando o delphi e gostaria de saber se tem como eu pegar o valor do
>>> numero q foi gerado pela trigger. É que eu gostaria de mostrar uma
>>> mensagem do tipo 'O item numero xxxxx foi criado com sucesso'.. essa
>>> mensagem é importante para o operador.
>>>
>>> Muito obrigado pela atençao
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>> Para editar sua configuração na lista, use o endereço 
>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço 
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço 
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> 






Mais detalhes sobre a lista de discussão lista