mco_copy_handle
接口适用于实时数据库 RT 。
复制对象句柄。
由于对象句柄不能像原始字节序列那样被复制(例如使用 memcpy()
函数),因此在极少数可能需要复制对象句柄的情况下,提供了此函数。
MCO_RET mco_copy_handle(
/*IN*/ mco_db_h db,
/*OUT*/ MCO_Hf * dst,
/*IN*/ MCO_Hf * src
);
参数
db
mco_db_h
数据库句柄。
dst
MCO_Hf *
接收副本的对象句柄的地址。
src
MCO_Hf *
要复制的对象句柄的地址。
返回
MCO_S_OK
已成功复制对象句柄。
示例
/* 应用程序代码片段 */
const char * dbname = "SimpleDb";
int main(int argc, char* argv[])
{
mco_db_h db;
MCO_RET rc;
mco_device_t dev;
mco_db_params_t db_params;
mco_trans_h t;
...
if( (rc = mco_runtime_start()) != MCO_S_OK)
exit(-1);
rc = mco_db_open_dev( dbname, simpledb_get_dictionary(), &dev, 1, &db_params );
if ( MCO_S_OK != rc )
{
rc = mco_db_connect( dbname, &db );
...
// 实例化类A的对象并获取其类代码
rc = mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
if ( MCO_S_OK == rc ) {
A a; /* Object handle */
uint2 code;
rc = A_new ( t, &a );
rc = mco_trans_commit( t );
A a2;
rc = mco_copy_handle( db, &a2, &a );
}
}
}
文件
- 头文件:
mco.h
- 源文件:
mcoobj.c
- 库:
libmcolib.a