thank you it works correctly
Dirk Huppertz wrote:
jalil wrote:
hi every body I want to use a trigger before insert data but it dosen't check what inside he insert how can I do?
here is the example a my code.
Class VIDB.Manufacturer Extends %Persistent [ ClassType = persistent]
{
Property Name As %String;
Trigger Test [ Event = INSERT, Time=before ] { New Manufacturer Set Manufacturer =##class(VIDB.Manufacturer).%New() If ((Manufacturer.Name = "a")) { Set $ZError="Quit $$$ERROR()" do $system.OBJ.DisplayError() } } }
when I do insert into VIDB.Manufacturer(Name) values ("a") it insert the data!!!!!!
Of course, it does. Inside your trigger code you create a new Manufacturer object, which properties are empty, never "a".
But you have to test the arguments which are passed by your sql insert statement:
Trigger Test [ Event = INSERT ] { set %ok = 1 if {Name*N} = "a" set %ok=0 quit }
Dirk.
