trigger

Ivan Smahin ivan_smahin at paradigmasoft.com
Tue Oct 2 11:51:32 CDT 2007


Hello Danny,

Tuesday, October 2, 2007, 5:27:43 PM, you wrote:

> Hi List,

> I have this trigger :

> CREATE OR REPLACE TRIGGER "trigger_tbl_organisations_typelist_AI"  
> AFTER INSERT
> ON "tbl_organisations" REFERENCING NEW AS newRow
>         FOR EACH ROW
>         WHEN NEW.objptr_org IS NULL
>         BEGIN
>         
>         DECLARE mylastrecid LONG;
>         
>         insert into tbl_typelists 
> (created_by,typelistname,objptr_organisation) values  
> ('cm_spBuildUserTypes','comppooltypes', NEW.RecID);
>         set mylastrecid = select recid FROM tbl_typelists where typelistname
> = 'comppooltypes'AND objptr_organisation = NEW.RecID;
>         insert into tbl_typelistvalues 
> (displayname,listvalue,objptr_typelist) values ('Technisch', 
> 1,mylastrecid);
>         insert into tbl_typelistvalues 
> (displayname,listvalue,objptr_typelist) values ('Praktisch', 
> 2,mylastrecid);
> END;

> If I insert a new record into tbl_organisations like this 'INSERT  
> INTO tbl_organisations(org_name) VALUES('test') these things happen:

> - record into tbl_organisations is inserted, with org_name "test", so
> that's correct
> - i get a error : Error : KErnel error: 0x21501. It's too few values.
I think NEW.RecID can not be used. It is a very special kind of field.
Please, try sql-function last_RecID()

Something like this:
...
        DECLARE tbl_organisations_lastrecid LONG;
        SET tbl_organisations_lastrecid = SELECT last_RECID();
...



-- 
Best regards,
Ivan Smahin 
Senior Software Engineer
Paradigma Software, Inc
Valentina - The Ultra-Fast Database
http://www.valentina-db.com



More information about the Valentina mailing list