Fórum Dúvida de iniciante #39906
05/11/2003
0
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
Curtir tópico
+ 0Posts
05/11/2003
Afarias
|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
06/11/2003
Rock.it
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
08/11/2003
Afarias
|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
10/11/2003
Rock.it
8) rock.it
Gostei + 0
10/11/2003
Afarias
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)