Duvida Auto-Numeração IB

Delphi

08/07/2004

Olá, estou com algumas duvidas em usar auto-numeração no IB. Estou usando trigger e generators para a auto-numeracao. O problema é, quando meu campo é chave ele nao gera e o campo nao pode ser nulo.. ou entao quando ele gera, assim que eu dou um post ele some do grid, somente depois de fechar e abrir o SQLExplorer novamente aparecem todos.
O codigo que estou usando para criação de generator e triggers eu tenho certeza que esta correto, agora vai ai o conteudo do trigger...
[b:8ab8cc999b]new.codigo = gen_id(gera,1);[/b:8ab8cc999b]
Eu li no forum sobre um [b:8ab8cc999b]Set Term ^;[/b:8ab8cc999b], será que é isso que está faltando???
Abraços


Lucianobarreto

Lucianobarreto

Curtidas 0

Respostas

Thiago Vidal

Thiago Vidal

08/07/2004

normalmente eu uso o código da trigger assim:

if ((new.CAMPO is null) or (new.CAMPO = 0)) then
  new.CAMPO = gen_id(GEN_TABELA, 1);



Se for dar um insert na mao, simplesmente passe o valor 0 ou null para o campo autonumeracao que ele sera automaticamente gerado... se for utilizar controls conscientes no delphi, coloque 0 como DefaultExpression no seu TField.


GOSTEI 0
Eniorm

Eniorm

08/07/2004

Se vc usa IBX, pode ser td automaticamente na propriedade
GeneratorField das querys, usando apenas os Generators, e
nem precisa de trigger.
T+


GOSTEI 0
Lucianobarreto

Lucianobarreto

08/07/2004

normalmente eu uso o código da trigger assim:
if ((new.CAMPO is null) or (new.CAMPO = 0)) then
  new.CAMPO = gen_id(GEN_TABELA, 1);

Se for dar um insert na mao, simplesmente passe o valor 0 ou null para o campo autonumeracao que ele sera automaticamente gerado... se for utilizar controls conscientes no delphi, coloque 0 como DefaultExpression no seu TField.


Valew pela resposta... o seu codigo e a mesma coisa que o meu.. pelo que reparei o seu vai ser bem util pra mim quando eu for migrar de um banco para o outro e o campo codigo ja tiver dados... mas ainda sim esta dando a mesma coisa... mas em todo caso valew...


GOSTEI 0
POSTAR