首页 / 浏览问题 / 组件GIS / 问题详情
只有udd和udb文件,如何保存成工作空间?
30EXP 2018年04月10日
pWorkSpace = new UGWorkspace();

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

pWorkSpace->m_WorkspaceConnection.m_nWorkspaceType = UGWorkspace::UGWorkspaceType::WS_Version_SMWU;
pDatasource = pWorkSpace->OpenDataSource(*dsConn);

UGWorkspaceConnection wscon;
wscon.m_strServer = tmpstr;//指定保存路径
wscon.m_nWorkspaceType = UGWorkspace::UGWorkspaceType::WS_Version_SMWU;

//UGbool bSuc = pWorkSpace.SaveAs(wscon);
//UGbool bSucex = pWorkSpace.Save();

保存和另存都是失败

2 个回答

WorkSpace有两种方法保存工作空间:

一个save,用于保存已经存在的工作空间,不改变原有的名称,即本身存在*.smwu或者*.sxwu。需要注意的是在调用之前需要设置pWorkspack->m_WorkspaceConnection.bFailIfExists = false;

另外一个是SaveAs,另存工作空间,即需要重新生成一个*.smwu或者*.sxwu。

SaveAs方法中需要填参数:UGWorkspaceConnection,参数必须设置完整,下面是文件型工作空间其中必填的属性参数:

 UGWorkspaceConnection wscon;
 wscon.m_strServer = _U("C:/ceshi.smwu");
 wscon.m_nWorkspaceType = UGWorkspace::UGWorkspaceType::WS_Version_SMWU;
 wscon.m_nVersion =  m_pWorkSpace->GetVersion();

UGbool bSuc = m_pWorkSpace->SaveAs(wscon);
4,620EXP 2018年04月12日
非常感谢!
解决了的问题麻烦点一下采纳哈,嘿嘿
4,620EXP 2018年04月11日
...