exactly!  if a record doesn't pass a rule, nothing happens... 
 
as far as a great weekend...have I mentioned the snow and my lack of golfing?!? 
but thank you anyway, and you too.

~RachAel 


----- Original Message ----- 
  From: James Bentley 
  To: RBASE-L Mailing List 
  Sent: Friday, April 11, 2008 2:06 PM
  Subject: [RBASE-L] - Re: Behavior of Before and After Triggers


  Rachel,

  Great suggestion.  I had de-emphasized using rules when
  constraints and later rules were implemented. If I understand
  the   processing sequence correctly I should never get to a
  trigger with such a rule. 

  Have a great weekend.

   
  --- Rachael Malberg <[EMAIL PROTECTED]> wrote:

  > Morning Jim!
  > 
  > Not sure I follow the question but my brain is a little
  > fuzzy...(could be because it's Friday and I've got a bad case
  > of golfing fever but with 12" of snow still on the ground and
  > 6-8" more to come today and tomorrow, relief is a little ways
  > off.)..  but are you trying to prevent the deletion of a
  > master record (a member) if a particular child record
  > (contribution history) exists?
  > 
  > If so I don't think a trigger is the correct solution, how
  > about a restricting deletion rule on the Member table 'where
  > MemberPK in (select MemberFK from ContributionHistory)' ?
  > 
  > Have a Fabulous Day!
  > Rachael M.
  > Freelance Developer
  > www.DragonflyDevelopmentMN.com
  >   ----- Original Message ----- 
  >   From: James Bentley 
  >   To: RBASE-L Mailing List 
  >   Sent: Thursday, April 10, 2008 10:54 PM
  >   Subject: [RBASE-L] - Behavior of Before and After Triggers
  > 
  > 
  >   I need some clarification of about "ABORT TRIGGER."  RBase
  > Help
  >   states "A trigger automatically runs a stored procedure when
  > an
  >   UPDATE, DELETE, or INSERT command is run with a table. Since
  > a
  >   trigger runs a stored procedure before the row that
  > triggered it
  >   is updated, inserted, or deleted, you can cancel the update,
  >   insert, or delete with the ABORT TRIGGER command in the
  > stored
  >   procedure. Also, you can verify the action being performed
  > in an
  >   update trigger on the row by using a SELECT command with the
  >   WHERE CURRENT OF SYS_OLD/SYS_NEW syntax to check the row
  >   before/after the update." The Tipoftheday.pdf also states
  > "5.2
  >   Order of Processing for Stored Procedures and Triggers
  >   A trigger automatically runs a stored procedure when an
  > UPDATE,
  >   DELETE, or INSERT command is run with a
  >   table.
  >   The following describes the sequence in which data integrity
  > is
  >   maintained when using Stored Procedures and
  >   Triggers:
  >   DELETE
  >   · Rules
  >   · Cascades
  >   · Triggers
  >   · Keys
  >   · Row itself
  >   UPDATE
  >   · Rules
  >   · Cascades
  >   · Triggers
  >   · Keys
  >   · Row itself
  >   INSERT
  >   · Rules
  >   · Triggers
  >   · Keys
  >   · Row itself
  >   Triggers automatically run a stored procedure when an
  > UPDATE,
  >   DELETE, or INSERT command is run with a
  >   table. The trigger is run before the row that triggered it
  > is
  >   updated, inserted, or deleted.
  >   Since the trigger runs first, it gives you a chance to abort
  > the
  >   procedure.
  >   When indexes are updated it is the last step before
  > completing
  >   the update.
  >   The row has valid values, the rules are met, and the
  > triggers
  >   did not abort.
  >   The only error out at this point is if the key update fails,
  >   such as a PKFK violation. When the key processing
  >   code is done it is a real attempt to update the key, not
  > just a
  >   "will it be ok" process. If you do not want your
  >   triggers to run you could modify the trigger to check for
  > PK-FK
  >   violations before doing the rest of the trigger."
  > 
  >   Triggers can be defined as TRIGGER BEFORE DELETE and/or
  > TRIGGER
  >   AFTER DELETE.  If I have a before delete and an after delete
  >   trigger and issue an ABORT TRIGGER in the TRIGGER BEFORE
  > DELETE
  >   will the TRIGGER AFTER DELETE still execute.  
  > 
  >   The reason for my question is I have a master member table
  >   Having CASCADE BOTH with many sub-tables.  Normally you
  > would
  >   never delete a record from the master table.  There are some
  >   exceptions and one sub-table the "contribution history" is
  >   critical and I don't want to allow a delete if contribution
  >   records exist.  I want to issue an ABORT TRIGGER in the
  > TRIGGER
  >   BEFORE DELETE procedure and also not execute a needed
  > TRIGGER
  >   AFTER DELETE procedure.
  > 
  >   Any insight would be appreciated.
  > 
  >   Jim Bentley
  >   American Celiac Society
  >   [EMAIL PROTECTED]
  >   tel: 1-504-737-3293
  > 
  >   __________________________________________________
  >   Do You Yahoo!?
  >   Tired of spam?  Yahoo! Mail has the best spam protection
  > around 
  >   http://mail.yahoo.com 
  > 
  > 


  Jim Bentley
  American Celiac Society
  [EMAIL PROTECTED]
  tel: 1-504-737-3293

  __________________________________________________
  Do You Yahoo!?
  Tired of spam?  Yahoo! Mail has the best spam protection around 
  http://mail.yahoo.com 

Reply via email to