>>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 >>