首页 / 浏览问题 / 组件GIS / 问题详情
删除数据集之后再创建出现内存错误
31EXP 2018年04月24日
使用产品:iobjects 6r 操作系统:win7 x64

首先删除数据集m_workspace.Datasources[0].Datasets.Delete("m_Region");返回true没有问题

然后创建m_workspace.Datasources[0].Datasets.Create(l_newDatasetVectorInfo);

如果之前删除的"m_Region"数据集没有任何数据的话,后面的创建就没有问题

如果之前删除的"m_Region"数据集有数据的话,后面的创建就会报内存错误(System.AccessViolationException:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”),这是为什么?

1个回答

您好,我这边测试后没有重现此问题,建议您写一个小demo,上传百度云后把下载地址私信给我试试呢。
5,985EXP 2018年04月24日
项目启动后重复删除创建这个数据集确实没有问题,但只要关闭项目再次启动删除创建就出事了,我用的是postgresql,出错的原因是m_Region确实被删除了,但是smregister这个表对应的记录却还存在
对了,数据集数据量小的话是没有这种问题的,我数据集有几万条数据

您好,您的问题跟数据有关的话,我们重现起来比较困难,另外提一句,您那边只使用6R的组件吗,现在6R产品已经过了维护周期了,参考产品生命周期表:http://support.supermap.com.cn/Common/Product.pdf

就算重现了您的问题,问题确实是个Bug的话,研发也不会去修改6R产品的Bug了。

所以建议您:用7C以上组件测试有无此问题,如果有,发给我具体重现的步骤,确认是缺陷后我报缺陷,交研发处理。

我用9D试了两次,第一次也出问题了,第二次就好了,然后6R也好了,现在有点懵逼...
我看生命周期表上这个6R从16年9月就不销售了,意思是说现在我不能买6R正式授权了么,是不是要更换高级的版本
对,尽管我们这边仍然在支持6R的老用户,但是已经不对外销售了,而且产品出现缺陷的话,研发不会再去改了。
好的...
...