delete
此函数将从数据库中移除由句柄引用的对象及其所有版本。
如果有哈希索引项和树索引项,也将一并移除。
MCO_RET classname_delete(
/*IN*/ classname * handle
);
参数
handle
classname *
类句柄类型变量的地址。
返回
MCO_S_OK
该实例已成功删除。。
MCO_E_ACCESS
事务句柄为MCO_READ_ONLY
。
MCO_E_TRANSACT
发生事务错误。
MCO_E_NOMEM
数据库内存分配错误。
MCO_ERR_OBJECT_HANDLE
无效的对象句柄。
MCO_ERR_TRN
封闭事务中出现错误。
示例
以下代码片段演示了如何使用 classname_delete()
函数来删除数据库对象。
Snippet from schema file:
class Record
{
uint4 key;
hash <key> hkey;
};
/* 应用程序代码片段 */
int find_delete(mco_db_h db, int hkey_val)
{
MCO_RET rc;
mco_trans_h t;
Record obj;
rc = mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
if ( MCO_S_OK == rc )
{
rc = Record_hkey_find(t, hkey_val, &obj);
if ( MCO_S_OK == rc )
{
rc = Record_delete(&obj);
}
rc = mco_trans_commit(t);
}
}