Procedure dbc_BeforeCloseTable(cTableName) If Upper(cTableName) = "CATLV" Select Count(iID) from (cTableName) where iDel=0 Into Array arCatLvCnt If arCatLvCnt[1] > 950 iTop = ( arCatLvCnt[1] - 950) Select iID from (cTableName) Where iDel=0 Order by iID Top (iTop) Into Array arOverCat For iCnt = 1 to Alen(arOverCat) ? Alen(arOverCat) Update (cTableName) ; Set iDel=1 , cDelU = "SysCatTruncate" ; Where iID=( arOverCat[iCnt] ) Next oDM.TUpdate(cTableName) EndIf EndIf EndProc