Yes, I agree with your logics. It's obvious choice and I thought that the initial poster has compelling reasons not to use it.
>Hi Ed ---
>
>The problem with this approach is you still have to deal with the Fee table records to avoid orphans. I'd prefer to take a bottoms-up and adjudicate the children first.
>
>>
>>RI trigger (Delete in your case) is actually DBC-stored procedure. You can check its name in Table Properties dialog. So, it's up to you to customize this procedure, e.g. by adding simple check on start:
>>IF TYPE("oApp.noruntrigger")="L" && or you may also check value
>>Return .T.
>>ENDIF
>>*** other RI code here
>>So, you just need in your archive utility to set oApp.noruntrigger (or any other name) property and run it with trigger code blocked.
Edward Pikman
Independent Consultant