[firebase-br] Campo auto incremento

Marlon bobbyjr em brturbo.com
Seg Jan 10 15:02:07 -03 2005


Mais é um sistema multiusuario, e se outra pessoa fazer a transação ao 
msmo tempo?? Não vai sair números repetidos?

Francisco Thiago de Almeida escreveu:
> 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
>>
> 
> 
> 
> ______________________________________________
> 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