从空间数据库中删除所有拓扑对象
生活随笔
收集整理的這篇文章主要介紹了
从空间数据库中删除所有拓扑对象
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
- ///?<summary>
- ????????///?//從空間數(shù)據(jù)庫中刪除所有拓?fù)鋵?duì)象
- ????????///?</summary>
- ????????///?<returns></returns>
- ????????public?bool?DeleteALLTopolgyFromGISDB()
- ????????{
- ????????????bool?rbc?=?true;
- ????????????try
- ????????????{
- ????????????????IWorkspace?ws?=?this.DefaultWorkSpace;
- ????????????????if?(ws?!=?null)
- ????????????????{
- ????????????????????//讀取所有拓?fù)?
- ????????????????????IEnumDataset?topEnumDataset?=?this.getEnumDataset(ws);
- ????????????????????if?(topEnumDataset?!=?null)
- ????????????????????{
- ????????????????????????topEnumDataset.Reset();
- ????????????????????????IDataset?ds?=?topEnumDataset.Next();
- ????????????????????????while?(ds?!=?null)
- ????????????????????????{
- ????????????????????????????switch?(ds.Type)
- ????????????????????????????{
- ????????????????????????????????case?esriDatasetType.esriDTFeatureDataset:
- ????????????????????????????????????if?(ds?is?ITopologyContainer)
- ????????????????????????????????????{
- ????????????????????????????????????????ITopologyContainer?topContainer?=?ds?as?ITopologyContainer;
- ????????????????????????????????????????ISchemaLock?schemaLock?=?(ISchemaLock)ds;
- ????????????????????????????????????????try
- ????????????????????????????????????????{
- ????????????????????????????????????????????schemaLock.ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock);
- ????????????????????????????????????????????int?tc?=?topContainer.TopologyCount;
- ????????????????????????????????????????????for?(int?i?=?tc?-?1;?i?>=?0;?i--)
- ????????????????????????????????????????????{
- ????????????????????????????????????????????????ITopology?top?=?topContainer.get_Topology(i);
- ????????????????????????????????????????????????if?(top?!=?null?&&?top?is?IDataset)
- ????????????????????????????????????????????????{
- ????????????????????????????????????????????????????//delete?top's?ITopologyRuleContainer?
- ????????????????????????????????????????????????????ITopologyRuleContainer?topruleList?=?top?as?ITopologyRuleContainer;
- ????????????????????????????????????????????????????IEnumRule?ER?=?topruleList.Rules;
- ????????????????????????????????????????????????????ER.Reset();
- ????????????????????????????????????????????????????IRule?r?=?ER.Next();
- ????????????????????????????????????????????????????while?(r?!=?null?&&?r?is?ITopologyRule)
- ????????????????????????????????????????????????????{
- ????????????????????????????????????????????????????????topruleList.DeleteRule(r?as?ITopologyRule);
- ????????????????????????????????????????????????????????r?=?ER.Next();
- ????????????????????????????????????????????????????}
- ????????????????????????????????????????????????????//delete?top's?featureclass
- ????????????????????????????????????????????????????IFeatureClassContainer?topFcList?=?top?as?IFeatureClassContainer;
- ????????????????????????????????????????????????????for?(int?d?=?topFcList.ClassCount?-?1;?d?>=?0;?d--)
- ????????????????????????????????????????????????????{
- ????????????????????????????????????????????????????????top.RemoveClass(topFcList.get_Class(d)?as?IClass);
- ????????????????????????????????????????????????????}
- ????????????????????????????????????????????????????//delete?top?object
- ????????????????????????????????????????????????????(top?as?IDataset).Delete();
- ????????????????????????????????????????????????????rbc?=?true;
- ????????????????????????????????????????????????}
- ????????????????????????????????????????????}
- ????????????????????????????????????????}
- ????????????????????????????????????????catch?(Exception?ex)
- ????????????????????????????????????????{
- ????????????????????????????????????????????AppLogErrWrite.WriteErrLog(ex.ToString());
- ????????????????????????????????????????}
- ????????????????????????????????????????finally?
- ????????????????????????????????????????{
- ????????????????????????????????????????????schemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);
- ????????????????????????????????????????}
- ????????????????????????????????????}
- ????????????????????????????????????break;
- ????????????????????????????????case?esriDatasetType.esriDTFeatureClass:
- ????????????????????????????????????break;
- ????????????????????????????}
- ????????????????????????????System.Runtime.InteropServices.Marshal.ReleaseComObject(ds);
- ????????????????????????????ds?=?topEnumDataset.Next();
- ????????????????????????}
- ????????????????????????System.Runtime.InteropServices.Marshal.ReleaseComObject(topEnumDataset);
- ????????????????????}//
- ????????????????}?//end?ws!=null
- ????????????}
- ????????????catch?(Exception?ee)
- ????????????{
- ????????????????rbc?=?false;
- ????????????????AppLogErrWrite.WriteErrLog(ee.ToString());
- ????????????}
- ????????????return?rbc;
- ????????}
轉(zhuǎn)載于:https://www.cnblogs.com/sqlite3/archive/2008/09/17/2566996.html
總結(jié)
以上是生活随笔為你收集整理的从空间数据库中删除所有拓扑对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真石漆多少钱啊?
- 下一篇: 非递归一次性加载分类数据到TreeViw