PROTECTED PROCEDURE CompareStructureData LPARAMETERS tcAlias1, tcAlias2 IF RECCOUNT(tcAlias1) RECCOUNT(tcAlias2) RETURN .f. ENDIF LOCAL lnSelect, llTheSame, lcFedCols, lcGISCols lnSelect = SELECT() SELECT * from (tcAlias1) ORDER BY column_name INTO CURSOR crsTempOne nofilter SELECT * from (tcAlias2) ORDER BY column_name INTO CURSOR crsTempTwo nofilter CURSORTOXML('crsTempOne', 'lcTempOne') CURSORTOXML('crsTempTwo', 'lcTempTwo') lcTempOne = lower(lcTempOne) lcTempTwo = lower(lcTempTwo) *!* Change the cursor name in the second XML string to be the same as in the *!* first string because this name is irrelevent to the structure comparison lcTempTwo = STRTRAN(lcTempTwo, 'crstemptwo', 'crstempone') IF SYS(2007, lcTempOne) = SYS(2007, lcTempTwo) llTheSame = .t. ENDIF USE IN crsTempOne USE IN crsTempTwo SELECT (lnSelect) RETURN llTheSame ENDPROC