Dúvida de iniciante

Firebird

05/11/2003

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

Curtidas 0

Respostas

Afarias

Afarias

05/11/2003

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


GOSTEI 0
Rock.it

Rock.it

05/11/2003

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


GOSTEI 0
Afarias

Afarias

05/11/2003

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


GOSTEI 0
Rock.it

Rock.it

05/11/2003

:D Obrigado!

8) rock.it


GOSTEI 0
Afarias

Afarias

05/11/2003

blz!


GOSTEI 0
POSTAR