hello all
I can´t run scripts sql using tmysql, I guess my fault, but I can´t see where

   cScript := ""
   cScript += "DELIMITER $$"+CHR(10)+CHR(13)
   cScript += "CREATE DEFINER = `ro...@`%` TRIGGER 
`lancamentos_fixos_before_ins_tr` BEFORE INSERT ON `lancamentos_fixos` FOR EACH 
ROW"+CHR(10)+CHR(13)
   cScript += "BEGIN"+CHR(10)+CHR(13)
   cScript += ""+CHR(10)+CHR(13)
   cScript += "IF ( (NEW.idsequencial IS NULL) OR (NEW.idsequencial = 0) ) 
THEN"+CHR(10)+CHR(13)
   cScript += "BEGIN"+CHR(10)+CHR(13)
   cScript += " SELECT MAX(idsequencial) INTO @ultimo_id FROM 
`lancamentos_fixos` WHERE idserver=NEW.idserver AND 
idfilial=NEW.idfilial;"+CHR(10)+CHR(13)
   cScript += ""+CHR(10)+CHR(13)
   cScript += " IF ((@ultimo_id IS NULL) OR (@ultimo_id=0)) 
THEN"+CHR(10)+CHR(13)
   cScript += "    BEGIN"+CHR(10)+CHR(13)
   cScript += "       SET NEW.id = CONCAT( NEW.idserver, NEW.idfilial, 1 
);"+CHR(10)+CHR(13)
   cScript += "       SET NEW.idsequencial = 1;"+CHR(10)+CHR(13)
   cScript += "    END;"+CHR(10)+CHR(13)
   cScript += " ELSE"+CHR(10)+CHR(13)
   cScript += "    BEGIN"+CHR(10)+CHR(13)
   cScript += "       SET NEW.id = CONCAT( NEW.idserver, NEW.idfilial, 
(@ultimo_id + 1) );"+CHR(10)+CHR(13)
   cScript += "       SET NEW.idsequencial = (@ultimo_id + 1);"+CHR(10)+CHR(13)
   cScript += "    END;"+CHR(10)+CHR(13)
   cScript += " END IF;"+CHR(10)+CHR(13)
   cScript += ""+CHR(10)+CHR(13)
   cScript += " END;"+CHR(10)+CHR(13)
   cScript += " END IF;"+CHR(10)+CHR(13)
   cScript += "END $$"+CHR(10)+CHR(13)
   cScript += "DELIMITER ;"+CHR(10)+CHR(13)

   oServer:query( ALLTRIM( cScript ) )

but happens Error in your sql syntax

I tested the code in sql client and runs ok
the script
DELIMITER $$
CREATE DEFINER = `ro...@`%` TRIGGER `lancamentos_fixos_before_ins_tr` BEFORE 
INSERT ON `lancamentos_fixos` FOR EACH ROW
BEGIN

IF ( (NEW.idsequencial IS NULL) OR (NEW.idsequencial = 0) ) THEN
BEGIN
 SELECT MAX(idsequencial) INTO @ultimo_id FROM `lancamentos_fixos` WHERE 
idserver=NEW.idserver AND idfilial=NEW.idfilial;

 IF ((@ultimo_id IS NULL) OR (@ultimo_id=0)) THEN
    BEGIN
       SET NEW.id = CONCAT( NEW.idserver, NEW.idfilial, 1 );
       SET NEW.idsequencial = 1;
    END;
 ELSE
    BEGIN
       SET NEW.id = CONCAT( NEW.idserver, NEW.idfilial, (@ultimo_id + 1) );
       SET NEW.idsequencial = (@ultimo_id + 1);
    END;
 END IF;

 END;
 END IF;
END $$
DELIMITER ;

I don´t know how make this, can someone help me?

Best Regards
Fernando Athayde



      
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to