检查sde数据库中的空间表结构通mdb表结构是否相同的思路

1  .遍历所有mdb表库  取出表结构放在list中

2  .使用sde工作空间通过mdb中的表名称取出图层信息(出错则表结构不一样。。或者说sde中没有mdb中对应的图层)

IFeatureClass pSdeFeatureClass = m_FeatureWorkSpace.OpenFeatureClass((pFeatureClass as IDataset).BrowseName);

2  .取出每个表的字段放在fileds中

3  .跳过不需要检查的字段(比如 objectid (在mdb中和sde库中两个唯一标识符可能不一样,但是意义相同所以可以跳过,当然根据需要还可以跳过其他的标识符)

 if (pfields.get_Field(j).Name.ToLower() == "objectid")

 4  .判断mdb中的字段和sde中的字段是否一样

if (pSdeFeatureClass.Fields.FindField(pfields.get_Field(j).Name) < 0)

5  .判断每个字段的类型是否相同(根据需要是否要做这方面的判断)

 if (pfields.get_Field(j).Type != pSdeFeatureClass.Fields.get_Field(pSdeFeatureClass.FindField(pfields.get_Field(j).Name)).Type)

Right! is "Fuck GIS",but don't think too much; It means reach a high during playing GIS. Come on!
原文地址:https://www.cnblogs.com/jsbrml/p/2150190.html