Auto-incremento para um campo CODIGO smallint
:?: 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
Curtidas 0
Respostas
Afarias
21/08/2003
crie generators no banco e...
...se estiver usando IBX use a propriedade GeneratorField do IBDataSet ou IBQuery.
T+
...se estiver usando IBX use a propriedade GeneratorField do IBDataSet ou IBQuery.
T+
GOSTEI 0
Luiz.claudio.vieira
21/08/2003
Como faço isso? Também tenho esta duvida, alguem tem algum exemplo de como faço isso?
GOSTEI 0
Afarias
21/08/2003
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+
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+
GOSTEI 0
Luiz.claudio.vieira
21/08/2003
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
Atenciosamente
Luiz Claudio V. Santos
GOSTEI 0
Afarias
21/08/2003
|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+
|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+
GOSTEI 0
Luiz.claudio.vieira
21/08/2003
Mais uma pergunta, a última neste assunto, como apago um generators? Uma tabela e drop table e o nome da tabela... e um generators?
GOSTEI 0
Afarias
21/08/2003
|como apago um generator?
delete from rdb$generators
where rdb$generator_name = ´nome_do_generator´
and rdb$system_flag is null;
T+
delete from rdb$generators
where rdb$generator_name = ´nome_do_generator´
and rdb$system_flag is null;
T+
GOSTEI 0