Re: [firebase-br] Correção do que o FÁBIO disse sobre o AUTOINCREMENTO. Erradamente.

André Medeiros - Solução andre em solucaoinf.srv.br
Seg Abr 10 10:59:37 -03 2006


O PostgreSQL tb usa Sequences pra faezr incremento ;)

----- Original Message ----- 
From: "Carlos Antônio Ferreira da Silva" <carlosmuzambinho em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, April 10, 2006 10:14 AM
Subject: [firebase-br] Correção do que o FÁBIO disse sobre o AUTOINCREMENTO. 
Erradamente.


CARO FÁBIO :
Você disse : "Toda esta gambiarra seria evitada (ou amenizada) se ouvessem
campos auto-incremento no Firebird..."
======================================================================
Por favor, LEIA ABAIXO e entenda sobre o que mencionou ERRADAMENTE no seu
email :
======================================================================
1) Campo Auto-Incremento, sem furos, É E SEMPRE FOI DESNECESSÁRIO (me PROVEM
o contrário !);

2) QUALQUER B.D. que você TENHA o campo "auto-incremento", se você incluir
um registro,
e logo depois EXCLUÍ-LO, a table ficará SEMPRE com um "furo" . Qual o
problema ? NENHUM.

3) ATENÇÃO : O campo Autoincremento é usado para LIGAR tables
MESTRE-DETALHE.

a) Para Núm. de N.F. mod 1, por exemplo o usuário deve DIGITAR o NÚM.
b) Para Núm. de N.F. Nº COO/impressora fiscal , por exemplo o usuário deve
Buscar o Nº COO e gravar ;

c) Quando quiser saber um TOTAL de registros, NUNCA baseie em um campo, e
sim
num "SELECT COUNT(*) from TABLE" ;
d) Não é necessário o usuário "ficar vendo" o número gerado, a não ser em
BUSCAS
por este número, por exemplo, cód.cliente ;

Por fim, fica a mensagem :
O FIREBIRD TEM O MELHOR MODO DE AUTO-INCREMENTO, USANDO
TRIGGER + GENERATOR, O QUE O IBEXPERT FACILITA MUITO sua criação

Exemplo :
Se você quer transferir de uma TABLE do PARADOX, que usa autoincremento para
o FB,
basta enviar o valor de cada campo autoincremento que o FB evitará o
incremento.
Ao final, basta atualizar o GENERATOR.
QUAL OUTRO B.D. PERMITE isto, usando campo autoincremento ??? Desconheço.

ASS :
Carlos Antônio Ferreira da Silva
=> Analista de Sistemas.
=> Professor LICENCIADO de Informática, incluindo as disciplinas :
** Modelagem de Dados, SQL, DELPHI, Lóg. de progr. com Pascal, nálise
Estruturada de Sistemas.

-----Mensagem Original-----
De: "Fabio" <clicklist em gmail.com>
Para: "FireBase" <lista em firebase.com.br>
Enviada em: sexta-feira, 7 de abril de 2006 11:40
Assunto: Re: [firebase-br] Aos interessados: O
melhorAutoincrementosequencial


Lá vem as pedras :-)

Toda esta gambiarra seria evitada (ou amenizada) se ouvessem campos
auto-incremento no Firebird...

[]'s
Fabio


On 4/7/06, Josauro S.J. <josauro em casasoft.inf.br> wrote:
>
> Em definitivo, para controlar bem a sequencia de códigos sem deixar furo
> uso
> uma tabela de registro mestre
>
>
> TABELA MESTRE
> NOMETABELA, NOMEDOCCAMPO, SEQUENCIA
>
>
> Em uma transação separada, pode ser no inicio da inclusão, chama se
> GetNovoCodigo, le se uma procedure que retorna o proximo codigo a ser
> usado
> da tabela/campo especificado, essa procedure procura no na tabela mestre o
> conjunto tabela/campo se nao existir ou existir apenas um registro,
> incrementa esse numero SEQUENCIA, caso existe mais de um  registro (sinal
> de
> que foi apagado algum registro na tabela de referencia) ai usa se a
> SEQUENCIA maior e apaga esse registro da tabela MESTRE.
>
> Nos processos de exclusão, ou cancelamento da inclusão, chama se a
> procedure
> DevolveCodigo, o qual grava na tabela MESTRE o conjunto Tabela/Campo e na
> SEQUENCIA coloca-se o codigo a ser reaproveitado, onde será pego na
> próxima
> Inclusão.
>
> Digo com certeza, funciona muito bem, para o propósito de reaproveitamento
> de números.
>
>
> (Este email foi verificado contra a presença de vírus, antes de ser
> enviado, pelo nosso sistema de FireWall, entre em contato com a CasaSoft (
> casasoft em casasoft.inf.br) e instale um em sua Empresa livre se de intrusos
> e mantenha seus sistemas e clientes livres de vírus.)
>
>
> ______________________________________________
> 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
>
>
______________________________________________
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


______________________________________________
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