RES: [firebase-br] Campo Auto-Incremento Sem Perda da Seqüência..

Evandro L. Covre elcovre em codaintellisoft.com.br
Ter Jul 12 17:07:30 -03 2005


Alan... dá pra fazer dá, mas não é simples como no Access.

Não existe rotina pronta pra fazer isso, o que você pode fazer é gerar o
AutoIncremento e se o usuário cancelar a inclusão você voltar manualmente o
número do Generator.

SET GENERATOR NOME_GENERATOR TO 1

Só que tome cuidado para não usar isso em rede e outro usuário já tiver
utilizado um código superior a esse.

Mas assim, se você gerar o valor no BeforePost do seu DataSet, você não
precisa se preocupar com isso, afinal o usuário estará gravando efetivamente
o registro.

Ai o que fica é a questão de se é o último registro ou não, mas ai com uma
função para verificar isso vc consegue fazer sucegado. Mas acho meio que
esforço a toa!

Abraço

Evandro L. Covre
Analista de Sistemas - Coda Intelligent Softwares
Tel: 16 2102 8765
http://www.codaintellisoft.com.br
Ribeirão Preto - SP
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Allan Elias Ramos
Enviada em: terça-feira, 12 de julho de 2005 16:44
Para: lista em firebase.com.br
Assunto: [firebase-br] Campo Auto-Incremento Sem Perda da Seqüência..

Olá pessoal, tudo bem? Espero que sim..

Olha, não sei se tem algum jeito de fazer isso, mas minha dúvida é a
seguinte:

Pra criar um campo auto-incremento no Firebird, é necessário um Generator e
uma Trigger. Isso eu sei fazer, e consigo também gerar o número no campo
antes de salvar o registro (eu preciso disso pq preciso desse código). Mas
assim, se eu criar um novo registro e não salvar ele, por acaso eu cancelar
a inserção de dados, esse código gerado se perde, por exemplo.

Código 1 - Salvo
Código 2 - Salvo
Código 3 - Cancelado
Código 4 - Salvo

A idéia seria não perder o código 3, ficando assim:

Código 1 - Salvo
Código 2 - Salvo
Código 3 - Cancelado
Código 3 - Salvo

Eu sei q, por exemplo, no Access ele funciona assim.. quando um código
gerado automaticamente não é usado, ele nao é descartado, é guardado pra uso
posterior.. tem como fazer isso no Firebird?

Só pra deixar claro, quero esse funcionamento só no caso de um cancelamento
na inserção do registro. Sei que, quando um registro é deletado, o código
não pode mais ser aproveitado.

Agradeço desde já a ajuda.. abraços..


Allan Elias Ramos
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista