Fórum Qual a melhor maneira de criar um número sequencial na rede? #236488
07/06/2004
0
Utilizo o Generator para chave primária (campo ID), mas no campo número tenho que manter ele sequencial, o que não é possivel quanto ao generator, pois depois de criado (On new record), e nesse caso eu preciso que seja assim pois tenho tabelas filho, não posso mais alterá-lo.
Então atribuo o valor ao campo Número através do SELECT MAX, porém ele não pega valores que ainda não foram comitados por outros usuários, sendo assim o número mostrado pode não ser o último de fato, e o problema é que o índice apesar de não ter sido comitado ele é válido, ou seja, ele verifica existe um número maior em outra transação mesmo que não tenha sido comitada. Qual a alternativa para isso?
Phfdelphi
Curtir tópico
+ 0Posts
07/06/2004
Franbrito
Gostei + 0
07/06/2004
Xisto
Espero que ao final deste topico eu tb encontre o que seria o ideal.
Tenho a famosa tabela CONFIG que guarda sempre o ultimo de tudo (Cliente/Fornecedor/Venda/Contrato,etc).
Leio a tabela, incremento, pego o numero incrementado e trabalho nele sem estress.
Como disse nao sei se é o ideal, mas tem funcionado bem.
Gostaria de saber se teria como um TRIGGER (Firebird) incrementar este numero do unico registro da tabela CONFIG (é um registro para cada filial) e me retorna-lo, tudo num unico comando SQL.
Gostei + 0
07/06/2004
Silviogs
utilizei esta rotina para resolver o meu problema, esperoi que lhe ajude.
CREATE PROCEDURE Gera_SEQ
@Filial tinyint,
@Retorno Integer Output
as
begin transaction
Update PArametros_Filial with (tablockx)
Set Última_Sequência = Última_Sequência + 1
Where Filial = @Filial
select @retorno = última_Sequência FRom Parametros_Filial Where Filial = @Filial
commit transaction
GO
Atenciosamente
Silvio Guedes
Gostei + 0
08/06/2004
Tarcisiojr
Gostei + 0
08/06/2004
Alanvieceli
barbadam, não da erro.....pelo menos até agora..
[]´s
:twisted:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)