mco_trans_start_ex
以隔离级别连接到数据库。
此函数用于启动事务。它是 mco_trans_start()
函数的扩展版本,仅允许为当前事务设置事务隔离级别。
这与调用 mco_trans_set_default_isolation_level()
方法不同,后者会为当前连接发起的所有事务设置隔离级别。
MCO_RET mco_trans_start_ex(
/*IN*/ mco_db_h db,
/*IN*/ MCO_TRANS_TYPE trans_type,
/*IN*/ MCO_TRANS_PRIORITY priority,
/*IN*/ MCO_TRANS_ISOLATION_LEVEL level,
/*OUT*/ mco_trans_h * t
);
参数
db
mco_db_h
此数据库连接的数据库句柄的地址。
trans_type
MCO_TRANS_TYPE
一个取自枚举 MCO_TRANS_TYPE
的无符号单字节值。
priority
MCO_TRANS_PRIORITY
一个从枚举 MCO_TRANS_PRIORITY
中获取的两字节无符号值。
level
MCO_TRANS_ISOLATION_LEVEL
MVCC 事务管理器的隔离级别,取自枚举 MCO_TRANS_ISOLATION_LEVEL
。
t
mco_trans_h *
用于接收事务句柄的 mco_trans_h
地址。
返回
MCO_S_OK
已成功创建数据库。
MCO_ERR_TRN
发生数据库事务错误。
示例
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;
...
rc = mco_db_open_dev( dbname, simple_get_dictionary(), &dev, 1, &db_params );
if ( MCO_S_OK != rc )
{
rc = mco_db_connect( dbname, &db );
...
rc = mco_trans_start_ex(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND,
MCO_SERIALIZABLE, &t);
if ( MCO_S_OK == rc )
{
...
rc = mco_trans_commit( t );
...
}
}
...
}
文件
- 头文件:
mco.h
- 源文件:
mcoabst.c
- 库:
libmcolib.a