Page 1 of 1

Generators and Triggers a Lot

Posted: 24.05.2010, 19:59
by sfxcc
Can i simplify generator and trigger management?

Can i do something to improve the bottom(eof) code like (similar) the next code :?: Any ideas =????


CREATE TRIGGER MYDynamicTrigger(mygenvar,mytablevar,myidvar)FOR mytablevar
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.myidvar IS NULL) THEN
BEGIN
NEW.myidvar =GEN_ID mygenvar,1);
END
END

:bash:


Or Create a variable type (domain) with that autoinc function...
like :
/* Begin: Data Type Definition */
CREATE DOMAIN BOOLEAN
AS VARCHAR(1)
CHECK(value is null or value in ('T','F'));
/* End: Data Type Definition */

If it does the check it might do other ???????? functions run the trigger or something :?: :?: :?:

I have the next code :


/* Begin : Generators Definition*/
CREATE GENERATOR GEN_GRUPOSID;
CREATE GENERATOR GEN_GRUPOSCOLABORDORESID;
CREATE GENERATOR GEN_FORMAPAGAMENTOID;
CREATE GENERATOR GEN_SERVICOSCLIENTESID;
CREATE GENERATOR GEN_SOLICITACOESCLICOLID;
CREATE GENERATOR GEN_ATTACHFILESID;
CREATE GENERATOR GEN_SERVICOSCONTRATADOSID;
CREATE GENERATOR GEN_PERIODICIDADESERVICOSID;
CREATE GENERATOR GEN_TIPOSERVICOID;
CREATE GENERATOR GEN_GENEROSERVICOID;
CREATE GENERATOR GEN_RESULTADOID;
CREATE GENERATOR GEN_ACCOESEXECUTADASIS;
CREATE GENERATOR GEN_TIPOSOLICITACOESINFOID;
/* End : Generators Definition*/


/* Begin : Triggers Definition */
CREATE TRIGGER TRI_GRUPOS FOR GRUPOS ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.GR_ID IS NULL) THEN BEGIN NEW.GR_ID =GEN_ID(GEN_GRUPOSID ,1); END END
CREATE TRIGGER TRI_GRUPOSCOLABORDORES FOR GRUPOSCOLABORDORES ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.GC_ID IS NULL) THEN BEGIN NEW.GC_ID =GEN_ID(GEN_GRUPOSCOLABORDORESID ,1); END END
CREATE TRIGGER TRI_FORMAPAGAMENTO FOR FORMAPAGAMENTO ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.FP_ID IS NULL) THEN BEGIN NEW.FP_ID =GEN_ID(GEN_FORMAPAGAMENTOID ,1); END END
CREATE TRIGGER TRI_SERVICOSCLIENTES FOR SERVICOSCLIENTES ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.SC_ID IS NULL) THEN BEGIN NEW.SC_ID =GEN_ID(GEN_SERVICOSCLIENTESID ,1); END END
CREATE TRIGGER TRI_SOLICITACOESCLICOL FOR SOLICITACOESCLICOL ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.SCC_ID IS NULL) THEN BEGIN NEW.SCC_ID =GEN_ID(GEN_SOLICITACOESCLICOLID ,1); END END
CREATE TRIGGER TRI_ATTACHFILES FOR ATTACHFILES ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.AF_ID IS NULL) THEN BEGIN NEW.AF_ID =GEN_ID(GEN_ATTACHFILESID ,1); END END
CREATE TRIGGER TRI_SERVICOSCONTRATADOS FOR SERVICOSCONTRATADOS ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.SC_ID IS NULL) THEN BEGIN NEW.SC_ID =GEN_ID(GEN_SERVICOSCONTRATADOSID ,1); END END
CREATE TRIGGER TRI_PERIODICIDADESERVICOS FOR PERIODICIDADESERVICOS ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.PS_ID IS NULL) THEN BEGIN NEW.PS_ID =GEN_ID(GEN_PERIODICIDADESERVICOSID,1); END END
CREATE TRIGGER TRI_TIPOSERVICO FOR TIPOSERVICO ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.TS_ID IS NULL) THEN BEGIN NEW.TS_ID =GEN_ID(GEN_TIPOSERVICOID ,1); END END
CREATE TRIGGER TRI_GENEROSERVICO FOR GENEROSERVICO ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.GS_ID IS NULL) THEN BEGIN NEW.GS_ID =GEN_ID(GEN_GENEROSERVICOID ,1); END END
CREATE TRIGGER TRI_RESULTADO FOR RESULTADO ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.R_ID IS NULL) THEN BEGIN NEW.R_ID =GEN_ID(GEN_RESULTADOID ,1); END END
CREATE TRIGGER TRI_RESULTADO FOR ACCOESEXECUTADAS ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.AE_ID IS NULL) THEN BEGIN NEW.AE_ID =GEN_ID(GEN_ACCOESEXECUTADASID ,1); END END
CREATE TRIGGER TRI_TIPOSOLICITACOESINFO FOR TIPOSOLICITACOESINFO ACTIVE BEFORE INSERT POSITION 0 AS IF (NEW.TSI_ID IS NULL) THEN BEGIN NEW.TSI_ID =GEN_ID(GEN_TIPOSOLICITACOESINFOID ,1); END END
/* End : Triggers Definition */




:thanks: :blink1: