首页 / 浏览问题 / 组件GIS / 问题详情
打开工作空间后,再打开多个数据源失败
30EXP 2018年04月09日
使用c++ iobjects,当打开某个工作空间后,再使用这个工作空间打开某个数据源成功,但是当打开第二个时就会失败,与数据无关,只要是第二个就失败,使用代码如下:

UGString strPathfile;
strPathfile.FromStd(Convert::toString(strFileFullPath).c_str());
UGC::UGDsConnection* dsConn =new UGC::UGDsConnection();

dsConn->m_bReadOnly = FALSE;
dsConn->m_nType = UGC::UDB;//数据库类型
dsConn->m_strServer = strPathfile;//.udb 文件全路径

pDatasource = m_pWorkSpace->OpenDataSource(*dsConn);

当strPathfile表示某个数据源A时,打开成功

当strPathfile表示另一个数据源B时,打开失败

也就是第二次执行这段代码就会失败

希望各路大神指点一下,万分感谢

2 个回答

打开的时候需要设置dsConn->m_strAlias; 默认都是一样的,第二次打开检测到已经存在这个名称的数据源,所以打开失败。数据源别名不能一样。
4,620EXP 2018年04月10日
补充:观察到打开失败状态时,m_pWorkSpace->m_DataSources.IsModified() 返回TRUE,是否与此有关?
30EXP 2018年04月10日
...