实现了IHistoricalWorkspace接口,通过其方法按名称查找版本(FindHistoricalVersionByName())、按时间戳查找版本(FindHistoricalVersionByTimeStamp()),我们便可以得到VersionedWorkspace对象。通过VersionedWorkspace对象我们可以得到IHistoricalVersion的引用。下面是C#示例代码:
1
//assuming a reference to a SDE workspace exists
2
IHistoricalWorkspace pHistWorksapce =mWorkspace as IHistoricalWorkspace;
3
4
IHistoricalVersion pHistVersion = pHistWorksapce.FindHistoricalVersionByName(“VersionName”);
5
2、 FeatureClass类与IHistoricalClass接口:
FeatureClass类继承了IHistoricalClass接口,通过IHistoricalClass接口我们可以很方便地得到该FeatureClass相应的归档对象。下面是C#示例代码:
1
IArchivableClass pArchivableClass =pFeatureClass as IArchivableClass;
2
3
//得到归档文件
4
IFeatureLayer pNewFeatLayer=new FeatureLayerClass();
5
6
pNewFeatLayer.FeatureClass = pArchivableClass.Archive as IFeatureClass;
7
8
IArchivableClass pArchivableClass =pFeatureClass as IArchivableClass;2

3
//得到归档文件4
IFeatureLayer pNewFeatLayer=new FeatureLayerClass();5

6
pNewFeatLayer.FeatureClass = pArchivableClass.Archive as IFeatureClass;7

8

3、EnumHistoricalMarker类与HistoricalVersionMarker类
历史版本从本质上来讲是历史标识(HistoricalVersionMarker),其在数据工作空间中的存在相当于一个事务性版本。通过IHistoricalMarker接口提供的方法AddHistoricalMarker可以实现历史标识的添加。下面是C#代码示例:
