Erro na criaçãoTrigger

Delphi

13/12/2010

Galera, boa tarde
estou tentando criar a seguinte trigger
CREATE DEFINER = CURRENT_USER TRIGGER `tblfinanceiro_after_ins_tr1` AFTER INSERT ON `tblfinanceiro`
  FOR EACH ROW
BEGIN
  SELECT @V_ID:=  MAX(IDHISTORICOFINANCEIRO)+1 from TBLHISTORICOFINANCEIRO where IdlocalHISTORICOFINANCEIRO=NEW.IDLOCALFINANCEIRO;

  INSERT INTO tblhistoricofinanceiro(cidchavesfinanceiro,idempresa,cidchavescadastro,datalancamento,datafinanceiro,valor,identificacao,idhistoricofinanceiro,idlocalhistoricofinanceiro,cidchaves)
  VALUES(NEW.CIDCHAVES,NEW.idempresa,NEW.cidchavescadastros,NEW.datalancamento,new.datalancamento,new.valor,new.identificacao,@V_ID,NEW.IDLOCALFINANCEIRO,CONCAT(@V_ID,'0',NEW.IDLOCALFINANCEIRO));
END;

esta dando erro na variavel, mas ja testei a select fora da trigger e funciona.

alguem pode me ajudar?
Agua Cascatai

Agua Cascatai

Curtidas 0

Respostas

Leonardo Xavier

Leonardo Xavier

13/12/2010

O banco é MYSql? qual componente você esta utilizando apra conectar o banco?
GOSTEI 0
Agua Cascatai

Agua Cascatai

13/12/2010

É mysql sim
o problema anterior, ja consegui resolver.
Estou com outro agora qu eé o seguinte
CREATE DEFINER = 'root'@'%' TRIGGER `tblbaixafinanceira_after_ins_tr` AFTER INSERT ON `tblbaixafinanceira`
  FOR EACH ROW
BEGIN
  DECLARE V_ID INT;
  DECLARE V_IDCLIENTE INT;
  SELECT CIDCHAVESCADASTROS FROM `tblfinanceiro` WHERE CIDCHAVES=NEW.CIDCHAVESFINANCEIRO INTO @V_IDCLIENTE;
  SELECT MAX(IDHISTORICOFINANCEIRO)+1 from TBLHISTORICOFINANCEIRO where IdlocalHISTORICOFINANCEIRO=NEW.IDLOCALBAIXAFINANCEIRA INTO @V_ID;
  INSERT INTO tblhistoricofinanceiro(cidchavesfinanceiro,idempresa,cidchavescadastro,datalancamento,datafinanceiro,valor,identificacao,idhistoricofinanceiro,idlocalhistoricofinanceiro,cidchaves)
  VALUES(NEW.CIDCHAVESFINANCEIRO,NEW.idempresa,V_IDCLIENTE,NEW.datalancamento,new.datalancamento,(new.valor)*-1,new.identificacao,@V_ID,NEW.IDLOCALBAIXAFINANCEIRA,CONCAT(@V_ID,'0',NEW.IDLOCALBAIXAFINANCEIRA));

END;

a variavel @V_IDCLIENTE, esta voltando nula, o campo cidchavescadastro(do insert) da tabela é  obrigatorio, com isso acontece erro na trigger.
consigo criar a trigger, mas na hora de incluir registro na tabela baixafinanceira, a trigger da erro no insert.
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

13/12/2010

Coloque o codigo do seu insert aqui. Poque sua tigger esta correta.
GOSTEI 0
POSTAR