- UID
- 10108
- 积分
- 5956
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-9-17
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2014-7-12 08:51:46
|
显示全部楼层
#ifndef DB_UTILITIES_H
#define DB_UTILITIES_H
//////////////////////////////////////////////////////////////////////////
//
// 与DataBase Table处理相关的函数
//
// Note:
//
//////////////////////////////////////////////////////////////////////////
#ifdef _DBXEXP_
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP
#endif
/*
* Purpose:
* 替换字符串中的字符
* Argument:
* pStr [in], 字符串
* search [in], 字符串中原来的字符
* replace [in], 要替换成的字符
*/
extern DLLIMPEXP void
replaceChars(char *pStr, const char search, const char replace);
/*
* Purpose:
* 将Db实体加入到数据库的MODEL_SPACE Table中
* Argument:
* pDb [in], 数据库指针, NULL时为当前数据库
* pEnt [in], Db实体指针
* idObj [out], 返回的实体Id
* Return:
* return eOk if success, if not success, idObj set to NULL.
*/
extern DLLIMPEXP Acad::ErrorStatus
postToDb (AcDbDatabase *pDb, AcDbEntity *pEnt, AcDbObjectId &idObj);
/*
* Purpose:
* 将Db实体加入到数据库的MODEL_SPACE Table中, 默认为当前数据库
* Argument:
* pEnt [in], Db实体指针
* idObj [out], 返回的实体Id
* Return:
* return eOk if success, if not success, idObj set to NULL.
*/
extern DLLIMPEXP Acad::ErrorStatus
postToDb(AcDbEntity *pEnt, AcDbObjectId &idObj);
/*
* Purpose:
* 将Db实体加入到数据库的MODEL_SPACE Table中, 默认为当前数据库
* Argument:
* pEnt [in], Db实体指针
* Return:
* return eOk if success.
*/
extern DLLIMPEXP Acad::ErrorStatus
postToDb(AcDbEntity *pEnt);
/*
* Purpose:
* 获取数据库中命名对象字典NOD(Named Object Dictionary)的子字典Id
* Argument:
* pDb [in], Db指针, NULL时为当前数据库
* key [in], NOD子字典名称
* bCreateIfNotPresent [in], 如果不存在,是否创建,默认为false
* Return:
* 返回Id,如果错误时返回NULL.
*/
extern DLLIMPEXP AcDbObjectId
getNODCompanyDictionaryId (AcDbDatabase *pDb,
const char *key,
bool bCreateIfNotPresent=false);
/*
* Purpose:
* 打开数据库中命名对象字典NOD(Named Object Dictionary)的子字典
* Argument:
* pDb [in], Db指针,NULL时为当前数据库
* key [in], NOD子字典名称
* pDict [out], 返回的NOD子字典指针
* mode [in], 打开模式,默认为read
* bCreateIfNotPresent [in], 如果不存在,是否创建,默认为false
* Return:
* Acad::eOk, 找到并打开
* Acad::eCreateInvalidName, 未找到但创建
* Acad::eKeyNotFound, 未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
getNODCompanyDictionary (AcDbDatabase *pDb,
const char *key,
AcDbDictionary *&pDict,
AcDb::OpenMode mode=AcDb::kForRead,
bool bCreateIfNotPresent=false);
/*
* Purpose:
* 打开数据库中命名对象字典NOD(Named Object Dictionary)的子字典
* 默认未当前数据库
* Argument:
* key [in], NOD子字典名称
* pDict [out], 返回的NOD子字典指针
* mode [in], 打开模式,默认为read
* bCreateIfNotPresent [in], 如果不存在,是否创建,默认为false
* Return:
* Acad::eOk, 找到并打开
* Acad::eCreateInvalidName, 未找到但创建
* Acad::eKeyNotFound, 未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
getNODCompanyDictionary (const char *key,
AcDbDictionary *&pDict,
AcDb::OpenMode mode=AcDb::kForRead,
bool bCreateIfNotPresent=false);
/*
* Purpose:
* 打开数据库中命名对象字典NOD(Named Object Dictionary)的entry
* Argument:
* pDb [in], Db指针,NULL时为当前数据库
* key [in], entry名称
* pObj [out], 返回的entry对象指针
* mode [in], 打开模式,默认为read
* Return:
* Acad::eOk, 找到并打开
*/
extern DLLIMPEXP Acad::ErrorStatus
getInNOD (AcDbDatabase *pDb, const char *key, AcDbObject *&pObj, AcDb::OpenMode mode=AcDb::kForWrite);
/*
* Purpose:
* 打开数据库中命名对象字典NOD(Named Object Dictionary)的entry
* 默认为当前数据库。
* Argument:
* key [in], entry名称
* pObj [out], 返回的entry对象指针
* mode [in], 打开模式,默认为read
* Return:
* Acad::eOk, 找到并打开
*/
extern DLLIMPEXP Acad::ErrorStatus
getInNOD (const char *key, AcDbObject *&pObj, AcDb::OpenMode mode);
extern DLLIMPEXP Acad::ErrorStatus
/*
* Purpose:
* 返回字典中对象的entry名称
* Argument:
* pDict [in], 字典指针
* pObj [in], 对象指针
* entryname [out], 返回的entry名称, 使用完后要注意释放空间
* Return:
* Acad::eOk, 成功
* Acad::eKeyNotFound, 未找到
*/
getInDictionary (const AcDbDictionary *pDict,
const AcDbObject *pObj,
char *&entryname);
/*
* Purpose:
* 打开对象伴随的扩展字典
* Argument:
* pObj [in], 对象指针
* key [in], 字典名称
* pDict [out], 字典指针
* mode [in], 打开模式,默认为read
* bCreateIfNotPresent [in], 如果不存在,是否创建,默认为false
* Return:
* Acad::eOk, 找到并打开
* Acad::eCreateInvalidName, 未找到但创建
* Acad::eKeyNotFound, 未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
getObjectExtCompanyDictionary (AcDbObject *pObj,
const char *key,
AcDbDictionary *&pDict,
AcDb::OpenMode mode=AcDb::kForRead,
bool bCreateIfNotPresent=true);
/*
* Purpose:
* 获取对象伴随的扩展字典Id
* Argument:
* pObj [in], 对象指针
* key [in], 字典名称
* bCreateIfNotPresent [in], 如果不存在,是否创建,默认为false
* Return:
* 对象Id,如果失败返回NULL
*/
extern DLLIMPEXP AcDbObjectId
getObjectExtCompanyDictionaryId (AcDbObject *pObj,
const char *key,
bool bCreateIfNotPresent);
/*
* Purpose:
* 加入对象到命名对象字典NOD(Named Object Dictionary)的子字典中
* Argument:
* pTargetDb [in], Db指针, NULL时为当前数据库
* pObj [in], 对象指针
* entryname [in], 对象在子字典中entry名称
* whichDict [in], NOD子字典名称
* bOverideIfnameExists[in], 如果存在是否覆盖,默认为false
* Return:
* Acad::eOk, 成功
* Acad::eAlreadyInDb, 如果存在但不覆盖
*/
extern DLLIMPEXP Acad::ErrorStatus
postToNODCompanyDictionary(AcDbDatabase *pTargetDb,
AcDbObject *pObj,
const char *entryname,
const char *whichDict,
bool bOverideIfnameExists=false);
/*
* Purpose:
* 加入对象到命名对象字典NOD(Named Object Dictionary)的子字典中
* 默认为当前数据库
* Argument:
* pObj [in], 对象指针
* entryname [in], 对象在子字典中entry名称
* whichDict [in], NOD子字典名称
* bOverideIfnameExists[in], 如果存在是否覆盖,默认为false
* Return:
* Acad::eOk, 成功
* Acad::eAlreadyInDb, 如果存在但不覆盖
*/
extern DLLIMPEXP Acad::ErrorStatus
postToNODCompanyDictionary(AcDbObject *pObj,
const char *entryname,
const char *whichDict,
bool bOverideIfnameExists=false);
/*
* Purpose:
* 加入对象到字典中
* Argument:
* pObj [in], 对象指针
* entryname [in], 对象在字典中entry名称
* pDict [in], 字典指针
* bOverideIfnameExists[in], 如果存在是否覆盖,默认为false
* Return:
* Acad::eOk, 成功
* Acad::eAlreadyInDb, 如果存在但不覆盖
*/
extern DLLIMPEXP Acad::ErrorStatus
postToDictionary(AcDbObject *pObj,
const char *entryname,
AcDbDictionary *pDict,
bool bOverideIfnameExists=false);
/*
* Purpose:
* 加入对象到命名对象字典NOD(Named Object Dictionary)中
* Argument:
* pTargetDb [in], 数据库指针,NULL时为当前数据库
* pObj [in], 对象指针
* entryname [in], 对象在子字典中entry名称
* bOverideIfnameExists[in], 如果存在是否覆盖,默认为false
* Return:
* Acad::eOk, 成功
* Acad::eAlreadyInDb, 如果存在但不覆盖
*/
extern DLLIMPEXP Acad::ErrorStatus
postToNOD(AcDbDatabase *pTargetDb,
AcDbObject *pObj,
const char *entryname,
bool bOverideIfnameExists=false);
/*
* Purpose:
* 加入对象到命名对象字典NOD(Named Object Dictionary)中
* 默认为当前数据库
* Argument:
* pObj [in], 对象指针
* entryname [in], 对象在子字典中entry名称
* bOverideIfnameExists[in], 如果存在是否覆盖,默认为false
* Return:
* Acad::eOk, 成功
* Acad::eAlreadyInDb, 如果存在但不覆盖
*/
extern DLLIMPEXP Acad::ErrorStatus
postToNOD(AcDbObject *pObj,
const char *entryname,
bool bOverideIfnameExists=false);
/*
* Purpose:
* 删除命名对象字典NOD(Named Object Dictionary)子字典中对象entry
* Argument:
* pTargetDb [in], 数据库指针,NULL时为当前数据库
* entryname [in], 对象在子字典中entry名称
* whichDict [in], 子字典名称
* Return:
* Acad::eOk, 成功
* Acad::eInvalidInput, 输入的名称为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
deleteInNODCompanyDictionary(AcDbDatabase *pTargetDb,
const char *entryname,
const char *whichDict);
/*
* Purpose:
* 删除命名对象字典NOD(Named Object Dictionary)子字典中对象entry
* 默认为当前数据库
* Argument:
* entryname [in], 对象在子字典中entry名称
* whichDict [in], 子字典名称
* Return:
* Acad::eOk, 成功
* Acad::eInvalidInput, 输入的名称为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
deleteInNODCompanyDictionary(const char *entryname,
const char *whichDict);
/*
* Purpose:
* 删除命名对象字典NOD(Named Object Dictionary)中对象entry
* Argument:
* pTargetDb [in], 数据库指针,NULL时为当前数据库
* entryname [in], 对象在字典中entry名称
* Return:
* Acad::eOk, 成功
* Acad::eCannotBeErasedByCaller, entry为字典,且不为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
deleteInNOD(AcDbDatabase *pTargetDb, const char *entryname);
/*
* Purpose:
* 删除命名对象字典NOD(Named Object Dictionary)中对象entry
* 默认为当前数据库
* Argument:
* entryname [in], 对象在字典中entry名称
* Return:
* Acad::eOk, 成功
* Acad::eCannotBeErasedByCaller, entry为字典,且不为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus deleteInNOD(const char *entryname);
/*
* Purpose:
* 删除命名对象字典NOD(Named Object Dictionary)中对象
* Argument:
* pTargetDb [in], 数据库指针,NULL时为当前数据库
* eId [in], 对象Id
* Return:
* Acad::eOk, 成功
* Acad::eCannotBeErasedByCaller, entry为字典,且不为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
deleteInNOD(AcDbDatabase *pTargetDb, const AcDbObjectId eId);
/*
* Purpose:
* 删除命名对象字典NOD(Named Object Dictionary)中对象
* 默认为当前数据库
* Argument:
* eId [in], 对象Id
* Return:
* Acad::eOk, 成功
* Acad::eCannotBeErasedByCaller, entry为字典,且不为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus deleteInNOD(const AcDbObjectId eId);
/*
* Purpose:
* 删除命名对象字典NOD(Named Object Dictionary)中对象
* Argument:
* pTargetDb [in], 数据库指针,NULL时为当前数据库
* pObj [in], 对象指针
* Return:
* Acad::eOk, 成功
* Acad::eCannotBeErasedByCaller, entry为字典,且不为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
deleteInNOD(AcDbDatabase *pTargetDb, AcDbObject *pObj);
/*
* Purpose:
* 删除命名对象字典NOD(Named Object Dictionary)中对象
* 默认为当前数据库
* Argument:
* pObj [in], 对象指针
* Return:
* Acad::eOk, 成功
* Acad::eCannotBeErasedByCaller, entry为字典,且不为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus deleteInNOD(AcDbObject *pObj);
/*
* Purpose:
* 删除字典中对象
* Argument:
* entryname [in], 对象entry名称
* pDict [in], 字典指针
* Return:
* Acad::eOk, 成功
* Acad::eCannotBeErasedByCaller, entry为字典,且不为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
deleteInDictionary(const char *entryname, AcDbDictionary *pDict);
/*
* Purpose:
* 删除字典中对象
* Argument:
* eId [in], 对象Id
* pDict [in], 字典指针
* Return:
* Acad::eOk, 成功
* Acad::eCannotBeErasedByCaller, entry为字典,且不为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
deleteInDictionary(const AcDbObjectId eId, AcDbDictionary *pDict);
/*
* Purpose:
* 删除字典中对象
* Argument:
* pObj [in], 对象指针
* pDict [in], 字典指针
* Return:
* Acad::eOk, 成功
* Acad::eCannotBeErasedByCaller, entry为字典,且不为空
* Acad::eKeyNotFound, 子字典或对象未找到
*/
extern DLLIMPEXP Acad::ErrorStatus
deleteInDictionary(AcDbObject *pObj, AcDbDictionary *pDict);
#endif // DB_UTILITIES_H |
|