>LPARA tcNewDataPath > >LOCAL lnCnt, loObj, lcDBC, lcNewDataPath > >IF TYPE("tcNewDataPath") <> "C" > RETURN .F. >ELSE > lcNewDataPath = tcNewDataPath >ENDIF > >LOCAL ARRAY laList[1] > >*** Get Object Members of DE >=AMEMBERS(laList, THISFORM.DATAENVIRONMENT, 2) >IF EMPTY(laList[1]) > *** Nothing in DE > RETURN >ENDIF > >IF ALEN( laList,1 ) > 0 > FOR i = 1 TO ALEN(laList,1 ) > loObj = EVAL("ThisForm.DataEnvironment."+laList[i]) > IF LOWER(loObj.BASECLASS ) = 'cursor' AND "\"$loObj.DATABASE > IF !EMPTY(loObj.DATABASE) > *** Contained Table > lcDBC = SUBSTR(loObj.DATABASE, RAT('\', loObj.DATABASE)) > loObj.DATABASE = tcNewDataPath + lcDBC > IF !DBUSED(loObj.Database) > OPEN DATABASE (loObj.Database) > ENDIF > SET DATABASE TO (loObj.Database) > ELSE > *** Free Table > lcDBC = SUBSTR( loObj.CursorSouce, RAT('\',loObj.CursorSouce)) > loObj.CursorSouce = tcNewDataPath + lcDBC > ENDIF > ENDIF > NEXT >ENDIF >