本文介绍了ProE二次开发中PDMLDBStartTransaction函数的使用。
在每个Pro/INTRALINK Toolkit程序中,都离不开PDMLDBStartTransaction和PDMLDBCommitTransaction函数,有以下几点需要注意:
1)PDMLDBStartTransaction和PDMLDBCommitTransaction这两个函数必须成对使用;
2)一般情况下,在获得License并正常登录到INTRALINK(也就是正常连接INTRALINK数据库)后,使用PDMLDBStartTransaction(ldb)函数来启动事务,接下来才可以对INTRALINK的W/S进行操作;
3)在最后释放License之前,处理完所有与INTRALINK相关的操作之后,必须使用PDMLDBCommitTransaction(ldb)函数来提交事务,保存之前所有对INTRALINK数据库的相关操作;
4)在程序处理过程中,有两种情况无法在启动事务的状态下进行:
a)使用PDMLDBFetch函数从C/S中检出指定对象到W/S中;
b)使用ProWorkspaceRegister函数在打开的Pro/ENGINEER中连接指定的一个W/S;
当出现以上两种情况时,必须先调用PDMLDBCommitTransaction函数提交事务,才可以正常调用以上PDMLDBFetch和ProWorkspaceRegister函数,处理完后如果还需要使用INTRALINK数据库,则需要重新启动事务;
如以下程序:
...
status = PDMLDBCommitTransaction(g_ldb);
(status == PDM_SUCCESS)?LogPrint(" PDMLDBCommitTransaction success "):LogPrint(" PDMLDBCommitTransaction failed ");
curpiv.Localize = 1;
status = PDMLDBFetch(g_ldb, (PTCSTRING)I_SpaceName, 1, &curpiv, 0, NULL, 1, 1, 0, NULL, 0, NULL, &checkout);
(status == PDM_SUCCESS)?LogPrint(" PDMWorkspaceFetch success "):LogPrint(" PDMWorkspaceFetch failed ");
status = PDMLDBStartTransaction(g_ldb);
(status == PDM_SUCCESS)?LogPrint( " PDMLDBStartTransaction success "):LogPrint(" PDMLDBStartTransaction failed ");
...
5)一旦发生提交事务失败,数据库将自动回滚,自动取消上一次启动事务之后对INTRALINK数据库所有的更改;
In Pro/INTRALINK Toolkit, no workspace handle is valid outside a workspace transaction. That is, after you close a workspace transaction, you may not be able to access the object using the handles from the previous transactions.
当重新启动事务后,如果还需要使用工作区的句柄,则需要重新获取,如可以通过工作区的名称重新获取。
补充以下2点:
1)当应用程序需要和工作区交换数据之前,必须启动事务;在交换数据完成之后,必须提交事务。
2)当应用程序直接与公共区进行通信时,不需要启动事务,系统将自动决定启动、提交或取消事务。
相关文章
- 2021-09-08BIM技术丛书Revit软件应用系列Autodesk Revit族详解 [
- 2021-09-08全国专业技术人员计算机应用能力考试用书 AutoCAD2004
- 2021-09-08EXCEL在工作中的应用 制表、数据处理及宏应用PDF下载
- 2021-08-30从零开始AutoCAD 2014中文版机械制图基础培训教程 [李
- 2021-08-30从零开始AutoCAD 2014中文版建筑制图基础培训教程 [朱
- 2021-08-30电气CAD实例教程AutoCAD 2010中文版 [左昉 等编著] 20
- 2021-08-30电影风暴2:Maya影像实拍与三维合成攻略PDF下载
- 2021-08-30高等院校艺术设计案例教程中文版AutoCAD 建筑设计案例
- 2021-08-29环境艺术制图AutoCAD [徐幼光 编著] 2013年PDF下载
- 2021-08-29机械AutoCAD 项目教程 第3版 [缪希伟 主编] 2012年PDF