删除数据集之后再创建出现内存错误

0 投票
222 浏览
使用产品: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:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”),这是为什么?
最新提问 4月 24 分类:  222次浏览 | 用户: 下雨不带伞 初出茅庐 (25 分)

1个回答

0 投票
 
已采纳
您好,我这边测试后没有重现此问题,建议您写一个小demo,上传百度云后把下载地址私信给我试试呢。
最新回答 4月 24 用户: 胡林 名扬四海 (5,799 分)
采纳于 4月 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的老用户,但是已经不对外销售了,而且产品出现缺陷的话,研发不会再去改了。
好的...
...