Subject | Re: [firebird-support] Any help .. I'm doing something wrong? |
---|---|
Author | Helen Borrie |
Post date | 2008-11-09T21:25:57Z |
At 07:51 AM 10/11/2008, you wrote:
./heLen
>I've got the following trigger, that is supposed to store the value of the updated record before 'old.' and the new value 'new.' in a table called user$stats.Any concatenation operation will produce null if there are any nulls amongst the bits and pieces you are concatenating. No doubt you need some COALESCE() expressions in there!
>
>CREATE OR ALTER TRIGGER USU_ENTRY2 FOR ENTRY2
>ACTIVE AFTER UPDATE POSITION 3
>AS
>
>begin
> insert into USER$STATS values(0,USER,'ENTRY2','UPDATE','NOW', old.ENTRYID||'~'||old.PATIENTID||'~'||old.TRANSDATE||'~'||old.TRANSCODE||'~'||old.TRANSCODEID||'~'||old.TRANSMODIFIER||'~'||old.TRANSMODIFIERID||'~'||old.TRANSPRINT||'~'||old.TRANSMEMDEBIT||'~'||old.TRANSMEMCREDIT||'~'||old.TRANSMAIDDEBIT||'~'||old.TRANSMAIDCREDIT||'~'||old.TRANSFISIOID||'~'||old.TRANSSCALE||'~'||old.TRANSICDCODE||'~'||old.TRANSICDLEVEL||'~'||old.TRANSICDLEVELID||'~'||old.TRANSEDI||'~'||old.TRANSFACILITY||'~'||old.TRANSDESCRIPTION||'~'||old.TRANSICDADDCODE||'~'||old.TRANSICDADDLEVEL||'~'||old.TRANSICDADDLEVELID||'~'||old.TRANSMULTIPLYTYPE||'~'||old.TRANSFACTOR||'~'||old.TRANSMULTIPLIER||'~'||old.TRANSCODETABLE||'~'||old.TRANSAMOUNT||'~'||old.TRANSDISC||'~'||old.TRANSDEBIT||'~'||old.TRANSCREDIT||'~'||old.TRANSTOTAL
> ||'~'||new.ENTRYID||'~'||new.PATIENTID||'~'||new.TRANSDATE||'~'||new.TRANSCODE||'~'||new.TRANSCODEID||'~'||new.TRANSMODIFIER||'~'||new.TRANSMODIFIERID||'~'||new.TRANSPRINT||'~'||new.TRANSMEMDEBIT||'~'||new.TRANSMEMCREDIT||'~'||new.TRANSMAIDDEBIT||'~'||new.TRANSMAIDCREDIT||'~'||new.TRANSFISIOID||'~'||new.TRANSSCALE||'~'||new.TRANSICDCODE||'~'||new.TRANSICDLEVEL||'~'||new.TRANSICDLEVELID||'~'||new.TRANSEDI||'~'||new.TRANSFACILITY||'~'||new.TRANSDESCRIPTION||'~'||new.TRANSICDADDCODE||'~'||new.TRANSICDADDLEVEL||'~'||new.TRANSICDADDLEVELID||'~'||new.TRANSMULTIPLYTYPE||'~'||new.TRANSFACTOR||'~'||new.TRANSMULTIPLIER||'~'||new.TRANSCODETABLE||'~'||new.TRANSAMOUNT||'~'||new.TRANSDISC||'~'||new.TRANSDEBIT||'~'||new.TRANSCREDIT||'~'||new.TRANSTOTAL);
>
>end
>
>Metadata for USER$STATS:
>CREATE TABLE USER$STATS (
> USER_ID Integer NOT NULL,
> USER_NAME Varchar(31),
> USER_TABLE Varchar(31),
> USER_ACTION Varchar(8),
> USER_DATE TIMESTAMP,
> USER_RECORD_ID Varchar(500),
> PRIMARY KEY (USER_ID)
>);
>
>CREATE UNIQUE INDEX IDX_USER$STATS_1 ON USER$STATS(USER_ID);
>
>When viewing the result, USER_RECORD_ID is NULL
./heLen