只有udd和udb文件,如何保存成工作空间?

0 投票
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();

保存和另存都是失败
4月 10, 2018 分类:  1754次浏览 | 用户: g明伟 初出茅庐 (30 分)

2 个回答

0 投票
 
已采纳
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月 12, 2018 用户: 程逸诗 名扬四海 (1,242 分)
采纳于 5月 23, 2018 用户:g明伟
非常感谢!
0 投票
解决了的问题麻烦点一下采纳哈,嘿嘿
4月 11, 2018 用户: 程逸诗 名扬四海 (1,242 分)
...