eXtremeDB SQL Transaction Rellease

本文介绍eXtremeDB中使用McoSql进行事务管理的方法,包括开始、提交和回滚事务的过程,并提供了一个具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

First of all, know that Transaction::release() releases the transaction object and related resources allocated by McoSql, but not by the eXtremeDB runtime. So the Transaction::release() method has to be called after any way to finish the transaction ( commit/release ). For example, see this snippet from our sample: “samples/native/sql/api/sql-03-transactions/mvcc/main.cpp”:

...
void task1( sample_task_t * descriptor )
{
  int rc;
  uint4 i;
  McoSqlSession session( &engine );
  SqlEngineAllocatorContext ctx(&session);
  Transaction* trans = session.database()->beginTransaction(Transaction::ReadWrite, 0, isolation_level);
  try {
      for (i = 0; i < (uint4)n_iterations; i++)
      {
          StructB a;
          char tag[MAX_TAG_LENGTH+1];
          a.tag = tag;
          a.ui4 = i;
          sprintf(a.tag, "\t\tStream 1, rec %u\n", i);
          mem_write(a.tag);
          //rc = pEngine->executeStatement("insert into A %r", a);
          rc = session.executeStatement(trans, "insert into A %r", &a);
          sample_sleep(nap_duration1);
      }
  } catch (McoSqlException &err) {
      mem_write("ERROR: ");
      mem_write(err.getMessage()->cstr());
      trans->rollback();
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值