要保存一个数据库,可以使用 McDbDatabase::saveAs() 函数。
如果两个数据库合并时发生冲突(例如两个数据库有相同的线型名),则在控件中使用目标数据库的数据。
下面的函数与标准的图形插入命令等价:
Mcad::ErrorStatus McDbDatabase::insert(McDbObjectId& blockId, LPCTSTR pBlockName, McDbDatabase* pDb);
Insert function
作用:将一个数据库复制到调用这个成员函数的数据库中。
接口:Mcad::ErrorStatus insert(
McDbObjectId & blockId,
LPCTSTR pszBlockName,
McDbDatabase* pDb,
bool preserveSourceDatabase = true,
bool isUpdataSameNameBlock = true);
参数:
名称 | 说明 |
---|---|
blockId | 返回新插入的图块表记录id |
pszBlockName | 新插入的图块表记录名,图块为空时,就把文件中所有图块都引进到当前图纸中 |
pDb | 插入的数据库指针 |
preserveSourceDatabase | 暂没使用 |
isUpdataSameNameBlock | 如果插入的数据库的图块名与当前数据库的图块名同名,需要不需要重新更新该图块 |
返回值:如果成功返回Mcad::eOk,如果传递的数据非法则返回Mcad::eInvalidInput。
参考例程:
AcDbDatabase db(Mdesk::kFalse ); if( db.readDwgFile( sBlkFileName ) != Acad::eOk ) { return FALSE; } if ( pDatabase->insert( blkRecId, sBlkName, &db ) != Acad::eOk ) { return FALSE; }
这个函数将实体从输入数据库的模型空间复制到指定的块表记录中,同时返回新块表记录的ID。