创建数据集返回null

0 投票
使用产品:iobject 6R 操作系统:win7 x64
数据类型:文件型

DatasetVectorInfo l_DatasourceConnectionInfo = new DatasetVectorInfo();
l_DatasourceConnectionInfo.IsFileCache = false;
l_DatasourceConnectionInfo.Name = "GradeGrid";
l_DatasourceConnectionInfo.EncodeType = EncodeType.Int32;
l_DatasourceConnectionInfo.Type = DatasetType.Region;
l_datasetMemory = l_dataSourceMemory.Datasets.Create(l_DatasourceConnectionInfo);

返回的l_datasetMemory为null,这个工作空间有两个数据源,一个是udb文件型的,创建数据集没有任何问题,再就是这个内存数据源,创建数据集一直为null,不知道为什么。

之前用postgresql的时候使用内存数据源也是没有问题。
5月 15, 2018 分类:  264次浏览 | 用户: 下雨不带伞 初出茅庐 (31 分)

1个回答

0 投票
 
已采纳

您好,按照您给的代码测试,并未出现您说的问题,代码如下:

                workspace = new Workspace();
                string path = @"C:\Users\Administrator\Desktop\zz.smwu";
                WorkspaceConnectionInfo info = new WorkspaceConnectionInfo(path);
                workspace.Open(info);


                DatasourceConnectionInfo dinfo = new DatasourceConnectionInfo();

                // 设置数据源位置为内存中,类型为UDB
                dinfo.Server = ":memory:";
                dinfo.EngineType = EngineType.UDB;

                Datasource m_datasource = workspace.Datasources.Create(dinfo);

                DatasetVectorInfo l_DatasourceConnectionInfo = new DatasetVectorInfo();
                l_DatasourceConnectionInfo.IsFileCache = false;
                l_DatasourceConnectionInfo.Name = "GradeGrid";
                l_DatasourceConnectionInfo.EncodeType = EncodeType.Int32;
                l_DatasourceConnectionInfo.Type = DatasetType.Region;
                Dataset l_datasetMemory = m_datasource.Datasets.Create(l_DatasourceConnectionInfo);

5月 15, 2018 用户: 胡林 登峰造极 (5,972 分)
采纳于 5月 15, 2018 用户:下雨不带伞
我发现这个文件型的工作空间保存的时候居然会把内存数据源也保存起来,虽然用桌面版打开工作空间时看不到这个内存数据源,但是用代码打开就会看到。如果使用这个保存下来的内存数据源就会出现我说的情况。
您好,这个问题我已经重现,我将上报缺陷交研发处理,不过因为您用的是6R版本,该版本产品已下线,不再修改缺陷,如需要建议之后使用修改后的9D产品。
好吧.....
缺陷号:OBJN-2197
...