Fórum Auto-incremento para um campo CODIGO smallint #38171

21/08/2003

0

:?: Estou iniciando no DELPHI. Criei 3 tabelas no Interbase e 2 delas tem um campo CODIGO, que é chave primária em ambas. Gostaria de saber se há um recurso fácil para que estes campos sejam auto-incrementados. Usei smallint, pois a quantidade de registros será muito pequena. Gostaria que fosse dado um exemplo simples de auto-incremento. Muito Obrigado!


Palmeida

Palmeida

Responder

Posts

21/08/2003

Afarias

crie generators no banco e...

...se estiver usando IBX use a propriedade GeneratorField do IBDataSet ou IBQuery.


T+


Responder

Gostei + 0

25/08/2003

Luiz.claudio.vieira

Como faço isso? Também tenho esta duvida, alguem tem algum exemplo de como faço isso?


Responder

Gostei + 0

25/08/2003

Afarias

crie o generator no Interbase:

CREATE GENERATOR nome_generator;


e no Delphi, abra o editor de propriedade da propriedade GeneratorField e defina o generator, o campo q vai receber o valor, e o evento (´on new record´ ou ´on post´)


T+


Responder

Gostei + 0

26/08/2003

Luiz.claudio.vieira

Caro amigo, muito obrigado pela dica do generators, ficou otimo, so que estou com uma duvida, estou utilizando IBX e a propriedade GeneratorField do IBDataSet e quando cadastro um determinado registro ele coloca o codigo sequencial sem problemas, mas quando eu deleto o cadastro, digamos que limpo minha base, hora que vou cadastrar um novo registro ele pega o codigo do ultimo cadastro, mesmo que ele nao exista mais, como faço para ele mudar o valor do generators? Por exemplo, cadastro 2, e logo em seguida apago os 2, e depois cadastro outro, eu queria que ele começasse novamente no 1 e nao no 3.

Atenciosamente

Luiz Claudio V. Santos


Responder

Gostei + 0

26/08/2003

Afarias

|Por exemplo, cadastro 2, e logo em seguida apago os 2, e depois
|cadastro outro, eu queria que ele começasse novamente no 1 e nao no3.

Isto não é possível pois está totalmente em desacordo com regras de sistemas muiti-usuário. -- Não teria como controlar isso no sistema rodando com vários usuários incluindo e excluindo na rede.

Agora, se achar q tá tudo bem, vc pode diminuir o valor do generator com::

select gen_id(nome_gererator, -1) from rdb$database;


T+


Responder

Gostei + 0

26/08/2003

Luiz.claudio.vieira

Mais uma pergunta, a última neste assunto, como apago um generators? Uma tabela e drop table e o nome da tabela... e um generators?


Responder

Gostei + 0

26/08/2003

Afarias

|como apago um generator?

delete from rdb$generators
where rdb$generator_name = ´nome_do_generator´
and rdb$system_flag is null;


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar