Fórum Como fazer um for ou while numa trigger #48486

15/12/2004

0

Olá

Pessoal to querendo fazer uma trigger que quando disparada insira n registros numa certa tabela

soh q n to conseguindo fazer o while funcionar
tipo o usuario vai digitar em quantas parcelas vai ser a venda dai a trigger tem que inserir na tabela a_receber
tipo 2 parcelas
entao tem que inserir dois registros sacaram?

alguma ideia

grato


Tuiobecker

Tuiobecker

Responder

Posts

20/12/2004

Ant.carlos/sp

Caro amigo!
Faço isto em meus sistemas.
Crie um ClientDataSet e crie os campos ncessario para sua parcelas.
Ex: Cds_Parcelas - Dtvcto
- Valor
- Nparc

Ao ativar o Botão Incluir, gere as parcelas e apresente este dados num DBGrid p/ q o usuario possa alterar algum dados e em seguida, apos confirmacao de gravar as parcelas, faça um loop e grave as parcelas no Acrecb.

Obs: o Cds gera cria um arquivo em memoria, q pode ser facimente manipulado.
Ex: Cds_Parcelas.Append
Cds_Parcelas.post
Cds_Parcelas.Delete
Cds_Parcelas.EmptyDataSet

Espero ter lhe ajudado

T+

ANT.CARLOS/SP


Responder

Gostei + 0

14/03/2011

Adriano Carvalho

tbm to precisando desse codigo.
to querendo deixa a responsabilidade para gerar parcelas p meu banco de dados.
vi esse codigo aqui num forum mais ainda num testei  pois achei ele nesse instante.
CREATE TRIGGER GERAR PARCELAS FOR DUPLICATAS


ACTIVE


AFTER UPDATE


POSITION 0


AS


  DECLARE VARIABLE I INTEGER;


BEGIN 


I=1;


IF INSERTING NEW.idcliente AND NEW.idduplicata THEN  


  While (i<12) do


     Begin


       I=I+1;


       INSERT INTO PARCELAS


         (IDCLIENTE, IDDUPLICATA, qtparcela,VENCIMENTO, total)


       VALUES 


         (new.idcliente, new.idduplicata, new.qtparcela+1, now+30,new.valor )   


   end


END	





o artigo original se encontra aqui
http://www.activedelphi.com.br/forum/viewtopic.php?t=60288&sid=605f5a2325adfcb8956113c29f4e4ddd

se alguem conseguir usar esse codigo favor passa p mim por email

duarte.cp80@hotmail.com
Responder

Gostei + 0

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

Aceitar