Fórum Utilização de Trigger´s #56902

13/09/2006

0

Pessoal, como poderia implementar uma trigger para seguinte situação, se for possível isso é claro... bom... vamos lá:

1) Estou desenvolvendo um sistema que multi-empresa ... dai veio uma necessidade de ter uma tabela.. por exemplo ... PedidoVenda .. em que cada empresa terá sua Sequencia de Pedido. Exemplo: Empresa 1 - possui o pedido núm. 10 e a Empresa 2 tbm possuíra a sequencia de pedido 10.

2) Assim pensei em fazer o uso de uma trigger, tendo como base as utilizadas como Generator cujo já uso para campos ID ...

3) Pensei na seguinte hipótese: Criar um campo no Cadastro da Empresa em que armazena-se o Código do Pedido da Empresa, assim ao fazer a inclusão de um pedido, esta verificaria qual eh a empresa, e auto incrementaria o campo do numero de pedido referente a empresa em questao, e na tabela pedido receberia este numero.

Rssss, não sei se estou viajando demais nisso.

Bom, dai veio minha dúvida, é possível atraves de uma trigger .. por exemplo.. na inclusao de um Pedido, fazer com que a trigger abra a tabela Empresa, verifica o campo NumPedido, incremento ele... e na Tabela Pedido .. receba este Numero gerado...?
Ou simplificando ... em uma trigger, é possível trabalhar com mais de uma tabela?


Renaldo.rocha

Renaldo.rocha

Responder

Posts

15/09/2006

Raserafim

uma trigger pode sim usar várias tabelas.
uma trigger é como se fosse um evento, ou seja, é disparado quando algo acontece (algo que vc define).

o auto incremento funciona da seguinte maneira. vc tem um Generator que armazena um número (a sequência). e uma trigger está associonada ao evento BeforeInsert. que chama a trigger e esta lê o valor do Generator, acrescenta mais um a este valor, salva o generator com o novo valor e coloca este mesmo valor no campo autoincremento da tabela.

pelo que entendi da sua pergunta vc quer saber o seguinte: se é possível ter 3 contadores independentes, e dependendo da loja disparar o contador referente a loja. é isso mesmo?

se for isso, é perfeitamente possível:
crie 3 Generator
no evento BeforeInsert do Pedido crie uma trigger que verifique o valor do NumPedido, e faça um IF para que de acordo com o número ele leia o Generator correspondente.


Responder

Gostei + 0

15/09/2006

Raserafim

dica:
a trigger do autoincrmento usa o segunte código:
  IF (NEW.COD_CLIENTE IS NULL) THEN
    NEW.COD_CLIENTE = GEN_ID(GEN_CLIENTES_ID,1);

GEN_CLIENTES é o nome do Generator


Responder

Gostei + 0

15/09/2006

Renaldo.rocha

obrigado rapaz... vou tentar fazer alguns testes pra poder entender o funcionamento...

valew...


Responder

Gostei + 0

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

Aceitar