Duvida Auto-Numeração IB
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
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
Curtidas 0
Respostas
Thiago Vidal
08/07/2004
normalmente eu uso o código da trigger assim:
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.
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
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+
GeneratorField das querys, usando apenas os Generators, e
nem precisa de trigger.
T+
GOSTEI 0
Lucianobarreto
08/07/2004
normalmente eu uso o código da trigger assim:
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.
if ((new.CAMPO is null) or (new.CAMPO = 0)) then new.CAMPO = gen_id(GEN_TABELA, 1);
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