LOCAL llRetVal llRetVal = .t. PRIVATE pcParentDBF,pnParentRec,pcChildDBF,pnChildRec,pcParentID,pcChildID PRIVATE pcParentExpr,pcChildExpr STORE "" TO pcParentDBF,pcChildDBF,pcParentID,pcChildID,pcParentExpr,pcChildExpr STORE 0 TO pnParentRec,pnChildRec IF _triggerlevel=1 BEGIN TRANSACTION PRIVATE pcRIcursors,pcRIwkareas,pcRIolderror,pnerror,; pcOldDele,pcOldExact,pcOldTalk,pcOldCompat,PcOldDBC pcOldTalk=SET("TALK") SET TALK OFF pcOldDele=SET("DELETED") pcOldExact=SET("EXACT") pcOldCompat=SET("COMPATIBLE") SET COMPATIBLE OFF SET DELETED ON SET EXACT OFF pcRIcursors="" pcRIwkareas="" pcRIolderror=ON("error") pnerror=0 ON ERROR pnerror=rierror(ERROR(),message(),message(1),program()) IF TYPE('gaErrors(1)')<>"U" release gaErrors ENDIF PUBLIC gaErrors(1,12) pcOldDBC=DBC() SET DATA TO ("TASTRADE") ENDIF first trigger LOCAL lcParentID && parent's value to be sought in child LOCAL lcChildWkArea && child work area handle returned by riopen LOCAL lcParentWkArea LOCAL llDelHeaderarea lcStartArea=select() llRetVal=.t. lcParentWkArea=select() SELECT (lcParentWkArea) pcParentDBF=dbf() pnParentRec=recno() STORE ORDER_ID TO lcParentID,pcParentID pcParentExpr="ORDER_ID" lcChildWkArea=riopen("order_line_items","order_id") IF lcChildWkArea<=0 IF _triggerlevel=1 DO riend WITH .F. ENDIF at the end of the highest trigger level RETURN .F. ENDIF not able to open the child work area pcChildDBF=dbf(lcChildWkArea) SELECT (lcChildWkArea) SEEK lcParentID SCAN WHILE ORDER_ID=lcParentID AND llRetVal pnChildRec=recno() pcChildID=ORDER_ID pcChildExpr="ORDER_ID" llRetVal=ridelete() ENDSCAN get all of the order_line_items records =rireuse("order_line_items",lcChildWkArea) IF NOT llRetVal IF _triggerlevel=1 DO riend WITH llRetVal ENDIF at the end of the highest trigger level SELECT (lcStartArea) RETURN llRetVal ENDIF IF _triggerlevel=1 do riend with llRetVal ENDIF at the end of the highest trigger level SELECT (lcStartArea) RETURN llRetVal ** "End of Referential integrity Delete trigger for" orders ******************************************************************************** ********************************************************************************