[firebase-br] Campo auto incremento

Francisco Thiago de Almeida jeandeadlucky em yahoo.com.br
Seg Jan 10 15:47:22 -03 2005


Usando o Generator não pq ele foge do escopo transacional.
No exato momento que voce chama aquele sql ele já incrementou o generator, 
ou seja, ele independe de commit ou rollback, por isso, com o generator, 
você nunca terá valores repetidos

Espero ter ajudado

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


> 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
>>
>
>
> ______________________________________________
> 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