[firebase-br] duvida autoincremento

João Marcos Amorim joao_jma em yahoo.com.br
Qua Ago 8 11:37:46 -03 2007


Minha dúvida é sobre este tópico:
  http://www.firebase.com.br/fb/artigo.php?id=2
   
  Dúvida: Na realidade, a geração de código auto-incremento realmente funciona, mas quando o usuário insere um novo registro o código gerado não aparece na tela, como fazer para isso não acontecer? Ou seja na hora da inserção o código gerado aparecer no Edit da tela? 
   
   
  ----------------------------------------------------------------------------------------------------------
  Abaixo segue o tópico:
  ----------------------------------------------------------------------------------------------------------
  Como usar campos auto-incrementais no Interbase ? 
  R: O Interbase não possui suporte direto ao tipo de dado autoincremental, mas voce pode facilmente simular esse tipo de dado, até com algumas vantagens. Veja a seguir um exemplo de como faze-lo : 
  
  Imagine que voce tenha uma tabela CLIENTES com um campo CODIGO INTEGER NOT NULL que é sua chave primária. Voce deseja que o campo CODIGO seja auto-incremental. Para isso, defina um generator como o seguinte :
  CREATE GENERATOR GEN_CLIENTE;
  Depois, crie um TRIGGER na posição BEFORE INSERT da tabela CLIENTES, como o seguinte :
  CREATE TRIGGER CLIENTES_BI 
FOR CLIENTES 
ACTIVE BEFORE INSERT POSITION 0 
AS 
BEGIN 
    IF (NEW.CODIGO IS NULL) THEN NEW.CODIGO = GEN_ID(GEN_CLIENTE,1); 
  END
  Com isso voce está simulando um campo auto-incremental, com a vantagem de que se voce atribuir um valor ao campo CODIGO, o trigger utilizará esse valor para o campo e não irá gerar um novo, o que é muito útil quando voce está migrando dados de uma base para outra e não quer que os códigos se alterem. (Carlos H. Cantu)

       Alertas do Yahoo! Mail em seu celular. Saiba mais.


Mais detalhes sobre a lista de discussão lista