Fórum Reaproveitar codigos #274969
01/04/2005
0
Ex: Eu tenho uma tabela com 100 codigos, esses codigos são autoincremento, e vamos supor que o codigo 50 é apagado.
Como eu faço pra sugerir o codigo 50 na próxima vez?
No Aguardo
Bruno Bacelar
Blbacelar
Curtir tópico
+ 0Posts
01/04/2005
Silviogs
voce pode criar o loop com um contador e verificar se o numcontador é igual ao valor do código na sua tabela, caso a contagem seja interrompida esse é o codigo que deseja usar:
EX: for i := 1 to tabela.recordcount do
if i = tabelacodigo.value then
tabela.next
else begin
tabela.insert;
tabelacodigo.value := i;
tabela.post;
end;
Obs: não sei se é isto? qualquer dúvida estamos aí!
Atenciosamente
Silvio Guedes
Gostei + 0
01/04/2005
Blbacelar
não teria como fazer por SQL?
Gostei + 0
01/04/2005
Beppe
Gostei + 0
01/04/2005
Motta
Nos casos em que não pode ´pular´ a melhor solução é a próxima chave ser a última mais um , mais isto pode gerar problemas de deadlock e a implementação precisa ser cuidadosa.
Não dá para buscar os não existente num sql, mas a ideia da tabela auxiliar do outro link funciona.
Gostei + 0
01/04/2005
Marco Salles
Como assim Beppe :oops: :oops: :oops: :oops: :oops:
Gostei + 0
01/04/2005
Beppe
Como assim Beppe :oops: :oops: :oops: :oops: :oops:[/quote:9030ffb149]
Foi só uma idéia que nunca implementei, mas seria algo assim:
set term ^ ; -- este generator é usado quando a tabela -- auxiliar estiver vazia create generator GEN1 ^ -- armazena IDs exluídos create table ID_GEN1 ( ID BIGINT ) ^ -- chame esta SP para obter um ID create procedure ObtemID returns (ID BIGINT) as begin ID = select first 1 ID from ID_GEN1; if ID = null then ID = gen_id(GEN1); end; suspend; end ^ set term ; ^
Espero não ter errado na sintaxe.
Sempre que você exluir um registro, vc adiciona seu ID na tabela auxiliar. Quando precisar de um ID, esta tabela é olhada primeiro, e se estiver vazia, o generator é usado.
Gostei + 0
01/04/2005
Marco Salles
Vamos supor que se tenha : 1,2,3,5,6,7,8 e na tabela Auxiliar se tem 4
Nesse momento a tabela principal , continua Esta com um buraco. Mas não em Forma de Queijo Suico... Porque , ao se incluir um novo registro, esta tabela é Olhada Primeiro e neste caso a tabela volta a estar cheia...
TabPrincipal : 1,2,3,4,5,6,7,8 TabAux --->>> agora nao tem nada
Conclusão : Se eu entendi a sua idéia , a tabela principal ,podera ficar em forma de buracos(Quijo suiço) somente no caso de muitas exclusões ocorrem seguidamentes..
Gostei + 0
01/04/2005
Beppe
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)