Fórum Dúvida de iniciante #39906

05/11/2003

0

Ola,

To iniciando no interbase, gostaria de saber o seguinte:

Tenho uma tb com um campo codigo, este é gerado por um generator
gencod. Eu preciso retornar este codigo gerado para ao cliente, entao
para resolver isso executo, logo após a qry de inclusão, uma que me
retorne o valor do generator . Pode acontecer de dois usuários quase
que simultaneamente incluirem os codigos poderam ser exibidos de
forma errada? Mostar o mesmo para os dois?

Este jeito que fiz não é melhor né, oq deveria fazer para melhora-lo?

Obrigado!!!!
[]s
:arrow: rock.it 8)


Rock.it

Rock.it

Responder

Posts

05/11/2003

Afarias

|Pode acontecer de dois usuários quase
|que simultaneamente incluirem os codigos poderam ser exibidos de
|forma errada? Mostar o mesmo para os dois?

Com GENERATORS ... NUNCA!


|Este jeito que fiz não é melhor né, oq deveria fazer para melhora-lo?

Não dá pra saber o q vc está realmente fazendo -- mas se deseja saber o valor do generator após sua criação -- então, ´gere o novo código no cliente´, ex::

select gen_id(nome_generator,1) from rdb$database


T+


Responder

Gostei + 0

06/11/2003

Rock.it

afarias,

O que estou fazendo é o seguinte:
Adiciono os dados na tabela por um Query
Logo apos seleciono o ultimo numero do generator
SELECT GEN_ID( GENTBINST, 0 ) FROM RDB$DATABASE;


Oq fiquei na duvida foi se ao pegar este ultimo numero do generator,
alguem ja poderia te incluido outro registro e ele me retornar o numero
errado. Já que estou fazendo isso direto na programação do programa.
Fiquei com esta dúvida pois vi em outro post a utilização de procedures
no proprio IB. Ou seja devo retornar esse código por uma procedure do
IB ou na programação obtenho o mesmo resultado?

Thanks!

rock.it


Responder

Gostei + 0

08/11/2003

Afarias

|Oq fiquei na duvida foi se ao pegar este ultimo numero do generator,
|alguem ja poderia te incluido outro registro e ele me retornar o numero
|errado.

É CERTO Q ISTO PODE OCORRER! -- esta não é uma prática correta se seu sistema é/será multi-usuário.


|Ou seja devo retornar esse código por uma procedure do
|IB ou na programação obtenho o mesmo resultado?

faça algo como ´SELECT GEN_ID(generator,1) FROM RDB$DATABASE´

jogue o código em uma variável ou diretamente no campo ´código´ de seu DataSet antes de gravá-lo. assim, o ´cliente´ fica sabendo o código gerado sem vc ter q consultar o servidor depois.



T+


Responder

Gostei + 0

10/11/2003

Rock.it

:D Obrigado!

8) rock.it


Responder

Gostei + 0

10/11/2003

Afarias

blz!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar