lcPath1 = 'c:\MyPath1\data\' lcPath2 = 'c:\MyPath2\data\' lcTable= 'MyTable' lcView = 'MyView' lcDatabase='MyDBC' open data (lcPath1+lcDatabase) use (lcPath1+lcDatabase+'!'+lcTable) alias t1 in 0 use (lcPath1+lcDatabase+'!'+lcView) alias v1 in 0 open data (lcPath2+lcDatabase) use (lcPath2+lcDatabase+'!'+lcTable) alias t2 in 0 use (lcPath2+lcDatabase+'!'+lcView) alias v2 in 0 lnInUse=aused(arrCursors) For ix=1 to lnInUse lnType = cursorgetprop('SourceType',arrCursors[ix,1]) ? ? 'Info for alias '+arrCursors[ix,1] ? '---------------------------------------' ? 'DBC :'+cursorgetprop('Database',arrCursors[ix,1]) ? 'DBF :'+dbf(arrCursors[ix,1]) ? 'DBObject :'+cursorgetprop('SourceName',arrCursors[ix,1]) ? 'DBType :'+iif(lnType=3,'Table',iif(lnType=2,'RemoteView','LocalView')) Set database to (cursorgetprop('Database',arrCursors[ix,1])) If cursorgetprop('SourceType',arrCursors[ix,1])=3 ? 'TablePath :'+dbgetprop(cursorgetprop('SourceName',arrCursors[ix,1]),'TABLE','Path') Else ? 'SQL :'+dbgetprop(cursorgetprop('SourceName',arrCursors[ix,1]),'VIEW','SQL') Endif EndforA problem might arise if views used simply DBCName!tablename instead of pathing the DBC but I think anyone using same names should be prepared for it.