====== Synchronizing the Volume and Table Information ====== Code similar to the following is used in OpenInsight to ensure that volume and table information is synchronized. You should never need to use this code, but it explains why a synchronization problem could cause a table to become unavailable: * first verify volume structures cVols = count(Volumes(0), @fm) + (Volumes(0) # "") for iVol = 1 to cVols Vol = Volumes(0) cFiles = count(Volumes(3), @vm) + (Volumes(3) # "") for iFile = 1 to cFiles File = Volumes(3) locate File in Tables(0) using @fm setting Pos then * check volume reference if Tables(1) # Vol then Volumes(3) = delete(Volumes(3), iVol, iFile, 0) end end else * file does not exist but is referenced by volume Volumes(3) = delete(Volumes(3), iVol, iFile, 0) end next iFiles next iVol cFiles = count(Tables(0), @fm) + (Tables(0) # "") for iFile = cFiles to 1 step -1 File = Tables(0) Vol = Tables(1) * check volume reference locate Vol in Volumes(0) using @fm setting Pos then locate File in Volumes(3) using @vm setting Pos else * file not referenced by a volume for i = 0 to 5 Tables(i) = delete(Tables(i), iFile, 0, 0) next i end end else * file references unattached volume for i = 0 to 5 Tables(i) = delete(Tables(i), iFile, 0, 0) next i end next iFile