1 问题背景

最近在做基于C#的ArcGIS二次开发,发现程序运行结束后,仍会残余ldb文件。猜测是程序打开mdb数据库后,没有及时解除锁定。经过一番搜索,得知关键在于调用Marshal.ReleaseComObject()方法,释放与mdb数据库相关的对象。
System.Runtime.InteropServices.Marshal.ReleaseComObject(object o)

2 相关对象

那么到底哪些才是“与mdb数据库相关的对象”呢?以程序运行结束后,ldb文件是否会自动删除为标准,经试验主要有以下三类:

  1. 工作空间直接创建的对象
    IEnumDatasetName enumDatasetName = ws.get_DatasetNames(esriDatasetType.esriDTAny);

  2. 工作空间对象
    IWorkspace ws = wsf.OpenFromFile(filePath, 0);

  3. 工作空间工厂对象
    IWorkspaceFactory wsf = new AccessWorkspaceFactoryClass();

3 注意事项

  1. 编程时可能会将IWorkspace ws转为其他接口类型,如IFeatureWorkspace fws、IRasterWorkspace2 rws等,只要释放一次ws就好了,fws和rws不用。

  2. 以上三类只是一般情况。也就是说,有时不释放其中某一类对象也行,有时还得释放其他直接关联到工作空间的对象才行。

参考文章:https://blog.csdn.net/sx341125/article/details/39086717

ArcGIS开发笔记——解除mdb锁定并自动清除ldb相关推荐

  1. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述

    1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...

  2. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步...

    1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...

  3. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据编辑...

    1.前言 在上一篇我们已经实现了离线地理数据库的下载,这一篇我们着重介绍离线数据库的加载与编辑. 由于ArcGIS Runtime SDK for Android 10.2.X版本并没提供要素绘制功能 ...

  4. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据下载...

    1.前言 1.1.环境准备: ArcGIS for Desktop 10.4.1(10.2.1以上版本即可) ArcGIS for Server 10.4.1 (10.2.1以上版本即可) Postg ...

  5. 《ArcGIS Runtime SDK for Android开发笔记》——(7)、示例代码arcgis-runtime-samples-android的使用...

    1.前言 学习ArcGIS Runtime SDK开发,其实最推荐的学习方式是直接看官方的教程.示例代码和帮助文档,因为官方的示例一般来说都是目前技术最新,也是最详尽的.对于ArcGIS Runtim ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》

    开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>--(1).And ...

  7. 小工具开发笔记—IE自动填表器—第一篇:你好,世界

    系列导航: 小工具开发笔记-IE自动填表器-第零篇:序 小工具开发笔记-IE自动填表器-第一篇:你好,世界 继上篇博文初步介绍了小工具,本文就作为开发笔记正文第一篇,来叙述一下如何使用C++开发一个完 ...

  8. Apollo自动驾驶开发笔记47——apollo编译报错this rule is missing dependency declarations for the following files

    Apollo自动驾驶开发笔记47--apollo编译报错this rule is missing dependency declarations for the following files 报错信 ...

  9. autojs脚本,华为手机自动解锁,解除屏幕锁定脚本源码

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

最新文章

  1. 【html】如何解决标签设置成超链接后字体格式及颜色变化的问题
  2. 懒加载实现的分页网站footer自适应
  3. Centos 7下查看当前目录大小及文件个数
  4. 类型转换出现在赋值运算符左边的情况
  5. MacOSX64位机器上gcc编译32位x264静态库
  6. php中修改弹窗的样式,CSS变形弹窗效果示例
  7. if...elif...else...fi和case...esac的脚本条件判断式
  8. 【Swin Transformer】W-MSA与MSA时间复杂度的理解
  9. 2.Java 面试题整理(基础篇二)
  10. macappstore登不上去_丈夫在外与多人暧昧,妻子气愤不已,可他却怒怼:这还不都是你逼的...
  11. C语言的很吊的printf-----来自一个C语言竞赛题目
  12. linux系统下find命令的使用
  13. Java学习之InputStream中read()与read(byte[] b)
  14. ajax文件上传进度条实现
  15. 空间回归分析笔记3——OLS、GWR输出结果的意义
  16. 支持华为荣耀HarmonyOS鸿蒙2.0系统安装谷歌服务框架play商店GMS的工具介绍,也开始支持其他安卓设备安装谷歌套件
  17. 六种用JavaScript检测出当前浏览器是否是无头浏览器( selenium headless browser)
  18. DEVC报错[Error] expected initializer before '.'
  19. 试卷代号:4988 2021年春季学期期末统一考试电子政务概论 试题(开卷)
  20. 突然发现高中时候的“概率”老师都讲的太复杂了

热门文章

  1. 如何在php中使用实体类的概念
  2. idea(中英文版)java新建一个运行项目到类(超详细)
  3. 饿了吗外卖和美团外卖CPS联盟对接、小程序推广路径代码获...
  4. 深入渗透流行趋势 安防行业发展机遇多
  5. python使用requests库下载单张图片的简单示例
  6. Django使用心得(一) 善用migrations
  7. 迈克耳孙干涉、光的衍射、艾里斑、瑞利判据和光栅(大学物理笔记)
  8. 中班音乐会跳舞的机器人_幼儿园大班音乐活动教案《爱跳舞的机器人》
  9. 2018全新无限流量卡充值官网PHP源码
  10. 良心安利办公室样机模板素材网站