CAD打开和关闭数据库对象

每一个数据库对象都可以通过下面3种方式来获得:

通过对象句柄

通过对象ID

通过C++实例指针

当控件没有运行时,图形保存在文件系统中,而包含在DWG文件中的对象是通过它的句柄来识别的。

当图形打开后,图形信息可以通过McDbDatabase对象来访问。在数据库中每一个对象都有一个对象ID,这个对象ID保存在当前编辑过程中,从McDbDatabase的创建直到删除,对象ID一直存在。对象打开函数将对象ID作为参数,返回一个McDbObject对象指针。这个指针在对象被删除前一直有效。

可以使用Mx::mcdbOpenObject()函数来打开对象,该函数的原型如下:

Mcad::ErrorStatus mcdbOpenMcDbObject (
McDbObject*& obj,
McDbObjectId id,
McDb::OpenMode mode,
Mdesk::Boolean openErasedObject = Mdesk::kFalse);
Mcad::ErrorStatus mcdbOpenObject(T_OBJECT*& pObj, McDbObjectId id, McDb::OpenMode mode, bool openErased = false);

可以使用下面的函数通过句柄获取对象ID,函数原型如下:

Mcad::ErrorStatus McDbDatabase::getAcDbObjectId(McDbObjectId& retId,Mdesk::Boolean createIfNotFound, const McDbHandle& objHandle, Mdesk::UInt32 xRefId=0);

可以使用McDbObjectPointer模板类打开:

McDbObjectPointer(McDbObjectId   objId,
                      McDb::OpenMode mode,
                      bool           openErased = false);

当然,也可以打开一个对象,然后获得此对象的句柄:

pObject->getMcDbHandle(handle);

mds_name与对象ID作用是相同的,在McDb库中提供了两个单独的函数在mds_name和McDbObjectId之间转换,函数原型如下:

mcdbGetAdsName(mds_name& objName, McDbObjectId objId);
mcdbGetObjectId(McDbObjectId& objId, mds_name objName);

可以使用如下方式打开对象:

kForRead:读方式。如果对象没有被以写方式打开,它可以被最多256个使用者以读方式打开。

kForWrite:写方式。如果一个对象没有被打开,则它可以被以写方式打开,否则打开对象的操作将失败。

原文地址:https://www.cnblogs.com/yzy0224/p/11163706.html

时间: 2024-08-27 15:13:52

CAD打开和关闭数据库对象的相关文章

代码实现打开和关闭数据库

+ (sqlite3 *)openDB { if (db == nil) { //获取Document文件的路径 //参数1:文件夹名字 参数2:查找域 参数3:是否使用绝对路径 NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; //(2)数据库文件的路径 NSString *dbPath = [docPath str

C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器,它能够长期保留信息,能读能写,可以刷新重写,方便携带,因而得到广泛使用. 文件(file)是程序设计中一个重要的概念.所谓“文件”,一般指存储在外部介质上数据的集合.一批数据是以文件的形式存放在外部介质(如磁盘.光盘和U盘)上的.操 作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部

Mysql数据库的打开和关闭

Mysql数据库的打开和关闭: 选择计算机(win7)-右键管理 在新窗口选择--服务 5 找到mysql,然后右键-启动(停止)

设计计算机类要求如下:属性:品牌、颜色、cpu型号,内存容量,硬盘大小,价格,工作状态;方法:打开,关闭,休眠;创建一个计算机对象,调用打开、关闭方法

代码如下: 1 //作者:realjanushu 2 //日期:17/9/28 3 /*功能: 4 设计计算机类要求如下: 5 6 属性:品牌.颜色.cpu型号,内存容量,硬盘大小,价格,工作状态: 7 8 方法:打开,关闭,休眠: 9 10 创建一个计算机对象,调用打开.关闭方法 11 */ 12 public class ComputerDemo{ 13 public static void main(String[] args){ 14 Computer c1 = new Computer

CAD删除数据库对象

数据库中的任何对象都可以使用下面的函数删除: Mcad::ErrorStatus McDbObject::erase(Mdesk::Boolen Erasing = Mdesk::kTrue); 对数据库对象和实体来说,使用erase()函数将会有不同的结果.当数据库对象被擦除时,该对象的相关信息都被从字典中删除,如果使用erase(kFalse)恢复对象,相关信息 不能自动恢复 ,必须使用 setAt() 函数将想关信息重新添加到字典中.当用户擦除一个实体时,它仅仅在块表记录中作了一个被擦除的

PHP中用PDO方法打开连接关闭mysql数据库

代码如下: 1 <meta http-equiv="content-type" content="text/html" charset="utf-8"/> 2 <h1>用PDO方法连接数据库!-姚远的博客</h1> 3 <form method="POST" action="<?php echo iconv("GB2312","UTF-8&

PHP中用mysqli面向对象打开连接关闭mysql数据库

代码如下: 1 <meta http-equiv="content-type" content="text/html" charset="utf-8"/> 2 <h1>用mysqli面向对象方法连接数据库!-姚远的博客</h1> 3 <form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP

PHP中用mysqli面向过程打开连接关闭mysql数据库

代码如下: 1 <meta http-equiv="content-type" content="text/html" charset="utf-8"/> 2 <h1>用mysqli面向过程方法连接数据库!-姚远的博客</h1> 3 <form method="POST" action="<?php echo iconv("GB2312","

oracle(创建数据库对象)

1 --创建数据库 2 --1.SYSDBA系统权限 3 startup:--启动数据库. 4 shutdown:--关闭数据库. 5 alter database[mount]|[open]|[backup]|[character set]:--修改数据库到加载状态.打开状态,备份数据库,修改数据库字符集. 6 create database:--创建数据库. 7 drop database:--删除数据库. 8 create spfile:--创建服务器初始化参数文件. 9 alter da