1. /// <summary>
  2. /// //从空间数据库中删除所有拓扑对象
  3. /// </summary>
  4. /// <returns></returns>
  5. public bool DeleteALLTopolgyFromGISDB()
  6. {
  7. bool rbc = true;
  8. try
  9. {
  10. IWorkspace ws = this.DefaultWorkSpace;
  11. if (ws != null)
  12. {
  13. //读取所有拓扑
  14. IEnumDataset topEnumDataset = this.getEnumDataset(ws);
  15. if (topEnumDataset != null)
  16. {
  17. topEnumDataset.Reset();
  18. IDataset ds = topEnumDataset.Next();
  19. while (ds != null)
  20. {
  21. switch (ds.Type)
  22. {
  23. case esriDatasetType.esriDTFeatureDataset:
  24. if (ds is ITopologyContainer)
  25. {
  26. ITopologyContainer topContainer = ds as ITopologyContainer;
  27. ISchemaLock schemaLock = (ISchemaLock)ds;
  28. try
  29. {
  30. schemaLock.ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock);
  31. int tc = topContainer.TopologyCount;
  32. for (int i = tc - 1; i >= 0; i--)
  33. {
  34. ITopology top = topContainer.get_Topology(i);
  35. if (top != null && top is IDataset)
  36. {
  37. //delete top's ITopologyRuleContainer
  38. ITopologyRuleContainer topruleList = top as ITopologyRuleContainer;
  39. IEnumRule ER = topruleList.Rules;
  40. ER.Reset();
  41. IRule r = ER.Next();
  42. while (r != null && r is ITopologyRule)
  43. {
  44. topruleList.DeleteRule(r as ITopologyRule);
  45. r = ER.Next();
  46. }
  47. //delete top's featureclass
  48. IFeatureClassContainer topFcList = top as IFeatureClassContainer;
  49. for (int d = topFcList.ClassCount - 1; d >= 0; d--)
  50. {
  51. top.RemoveClass(topFcList.get_Class(d) as IClass);
  52. }
  53. //delete top object
  54. (top as IDataset).Delete();
  55. rbc = true;
  56. }
  57. }
  58. }
  59. catch (Exception ex)
  60. {
  61. AppLogErrWrite.WriteErrLog(ex.ToString());
  62. }
  63. finally
  64. {
  65. schemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);
  66. }
  67. }
  68. break;
  69. case esriDatasetType.esriDTFeatureClass:
  70. break;
  71. }
  72. System.Runtime.InteropServices.Marshal.ReleaseComObject(ds);
  73. ds = topEnumDataset.Next();
  74. }
  75. System.Runtime.InteropServices.Marshal.ReleaseComObject(topEnumDataset);
  76. }//
  77. } //end ws!=null
  78. }
  79. catch (Exception ee)
  80. {
  81. rbc = false;
  82. AppLogErrWrite.WriteErrLog(ee.ToString());
  83. }
  84. return rbc;
  85. }

转载于:https://www.cnblogs.com/sqlite3/archive/2008/09/17/2566996.html

从空间数据库中删除所有拓扑对象相关推荐

  1. Ps 初学者教程「66」如何在照片中删除和添加对象?

    欢迎观看 Photoshop 教程,小编带大家了解如何通过添加.移动和删除照片中的元素来创作抽象和超现实的图像. 如果想通过去除脚印为这张照片增添神秘感.我们使用「修补工具」绘制一组足迹,确保在选项栏 ...

  2. R语言unique函数计算数据对象(vector、dataframe)的unique独特值:unique函数从vector向量、dataframe中删除重复项、删除dataframe重复行

    R语言unique函数计算数据对象(vector.dataframe)的unique独特值:unique函数从vector向量.dataframe中删除重复项.删除dataframe重复行 目录

  3. 在JavaScript中删除对象

    本文翻译自:Deleting Objects in JavaScript I'm a bit confused with JavaScript's delete operator. 我对JavaScr ...

  4. 遍历Collection,避免在循环中删除对象时避免ConcurrentModificationException

    我们都知道,由于ConcurrentModificationException您无法执行以下操作: for (Object i : l) {if (condition(i)) {l.remove(i) ...

  5. java类怎么删除对象_在java中删除一个对象?

    在java中删除一个对象? 我想删除一个我创build的对象(跟随着你的一个椭圆),但是我怎么做呢? delete follower1; 没有工作. 编辑: 好吧,我会给更多的上下文. 我正在制作一个 ...

  6. java arraylist 对象 删除_如何从Java中的ArrayList对象中删除冗余元素?

    接口集不允许重复的元素.茶add() 此接口的方法接受元素并添加到Set对象,如果添加成功,则如果您尝试使用此方法添加现有元素,则返回true,添加操作将返回false. 因此,要删除ArrayLis ...

  7. php删除对象中的一个数组,PHP:从数组中删除对象

    unset函数可用于从PHP中的特定索引中删除数组对象- 示例$index = 2; $objectarray = array( 0 => array('label' => 'abc',  ...

  8. matlab中删除照片_matlab中删除对象

    删除对象 (1)delete:删除文件或对象图形 删除文件对象h的格式为:delete('filename')或delete filename 删除图形对象h的格式为:delete(h); 若要无条件 ...

  9. vue+js 从一个数组中删除在另一个数组中已存在对象;

    数组,对象常用的删除方法: 1.根据一个数组元素,删除另一个数组中的对象: var a = [{ id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 1 ...

最新文章

  1. 听说92.8%的人答不对这道Python题,我不信,后来我信了!真有趣
  2. scikit-learn学习笔记(三)Generalized Linear Models ( 广义线性模型 )
  3. 【转】DCMTK各模块说明!!!!!!!
  4. mysql批量用trim限定_mybatis中批量更新sql语句,trim、foreach标签,varchar定义理解
  5. 终于迎来大改变!iPhone 14全系标配120Hz高刷屏+6GB内存
  6. oracle获取日期中日,关于ORACLE ERP中日记帐的借、贷对应的问题
  7. (C/C++) string / *char / int 基本轉換
  8. CentOS7环境下在/离线安装GCC与GCC-C++
  9. java 中使用_java中运算符的使用方法
  10. matlab 简明教程 薛山 pdf,matlab简明教程
  11. 企业资源计划(ERP)原理与实践 第三章 需求计划
  12. SAP中计划日历计算规则的理解
  13. nvcc fatal : Unsupported gpu architecture ‘compute_30‘
  14. Mutt电子邮件的使用
  15. C语言实现约瑟夫环问题
  16. Excel数据快速录入技巧分享
  17. swoole-redis连接池的问题总结
  18. Html5 生成个玫瑰线图案
  19. 【成电860考研】《软件工程》-anki卡片知识合集-504张卡片-28000字-上岸资料整理
  20. Short 类型直接和数值1做对比

热门文章

  1. 在建工程费用化处理_未确认融资费用和未实现融资收益的含义和区别
  2. 华师大数据科学考研_2020年华东师范大学行政管理专业考研报录比、参考书目、考研经验分享...
  3. java软件测试黑盒工具,软件测试中的抽象层次系列之一 – 黑盒与白盒
  4. rust怎么用items刷东西_装修贷卡怎么刷?不同银行的用不同的POS机刷才对
  5. 对象特性--构造函数调用规则
  6. 生产异常反馈流程图_企业生产现场管理做到这些,想不成功都难
  7. 天空之城(君をのせて)主题曲
  8. 一台服务器两个mysql_在一台服务器上安装两个或多个mysql的实现步骤_MySQL
  9. c语言字符串 s,c – printf格式字符串中“% – *.* s”的含义是什么
  10. Vue子组件调用父组件方法并传参的5种方式:$emit触发、传入子组件function、访问父组件$parent.function、用inject关联父组件provide的方法、用window.fun