当前位置: 首页 > news >正文

GBASE南大通用 ADO.NET 中的事务

GBASE南大通用 ADO.NET 中支持事务,可以使用GBASE南大通用Connection 对象的BeginTransaction 函数开始一个事务,并默认使用 ReadCommitted 模式初始化。

事务中可以对单个表执行多个操作,或者对多个表执行多个操作,在事务未提交前,事务中的这些命令执行后并不是真正的影响数据库记录。当调用BeginTransaction 返回对象的 commit 方法时,才会真正的影响记录。

在GBASE南大通用 ADO.NET 中使用事务

在GBASE南大通用ADO.NET 使用事务时需下列步骤:

1) 使用 GBaseConnection 创建数据库连接对象

2) 使用 GBaseCommand 创建命令对象

3) 使用连接对象打开连接

4) 使用连接对象的 BeginTransaction 开启事务,返回事务对象

5) 将命令对象与连接对象及事务对象关联

6) 命令对象对表进行一些操作

7) 执行事务对象的提交方法

8) 命令对象执行失败后,执行事务对象的回滚方法

下面的例子展示在 GBase ADO.NET 中如何使用事务。

[ C# ]

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using GBase.Data;

using GBase.Data.GBaseClient;

using System.Diagnostics;

namespace UsingStoredRoutines

{

class Program

{

static void Main(string[] args)

{

GBaseConnection _Conn = new GBaseConnection();

_Conn.ConnectionString =

"server=192.168.5.41;user=root;database=test;password=1;pooling=fals

e";

GBaseCommand _Cmd = new GBaseCommand();

GBaseTransaction _Trans = null;

try

{

Console.WriteLine("Connecting to GBase...");

_Conn.Open();

_Trans = _Conn.BeginTransaction();

_Cmd.Connection = _Conn;

_Cmd.Transaction = _Trans;

// 在 GBase 8a 集群下需显示关闭自动提交模式

// _Cmd.CommandText = "set autocommit = false";

/ _Cmd.ExecuteNonQuery();

_Cmd.CommandText = "insert into `test`(`f_varchar`)

values('111')";

_Cmd.ExecuteNonQuery();

_Cmd.CommandText = "insert into `test`(`f_varchar`)

values('222')";

_Cmd.ExecuteNonQuery();

_Trans.Commit();

Console.WriteLine("Transaction has committed.");

}

catch (GBaseException ex)

{

_Trans.Rollback();

Console.WriteLine("Error " + ex.Number + " has

occurred: " + ex.Message);

}

finally

{

if (_Conn != null)

_Conn.Close();

Console.WriteLine("None.");

}

}

}

}

http://www.lryc.cn/news/263133.html

相关文章:

  • App(Android)ICP备案号查询——————高仿微信
  • 修改npm源码解决服务端渲染环境中localstorage报错read properties of undefined (reading getItem)
  • Educational Codeforces Round 160 (Div. 2) A~C(D,E更新中...)
  • 【Maven-Helper】利用 Maven-Helper 解决依赖冲突问题
  • C# WPF上位机开发(知识产权ip保护)
  • 【Jenkins】Pipeline 语法解析(声明式Pipeline)
  • 二叉树的最大深度(LeetCode 104)
  • 03-数据结构-栈与队列
  • 功能测试转向自动化测试 。10 年 心路历程——愿测试人不再迷茫
  • VIM ——Vimtutor 个人总结【从入门到精通】
  • gitea分支、合并
  • 探究 JavaScript 类型检查的利器:typeof 和 instanceof
  • VSCode报错插件Error lens
  • go-zero开发入门之gateway深入研究1
  • 【每日一题】反转二叉树的奇数层
  • vue 项目配置反向代理导致项目白屏
  • 全国县级行政区点位数据,Shp+excel格式
  • 文件包含的提升刷题
  • 入门级银行测试岗位招聘,只需具备这些基本条件!
  • 组里新来了个00后,真卷不过....
  • python 命令添加参数
  • LVS负载均衡器(DR模式)+nginx七层代理+tomcat多实例+php+mysql 实现负载均衡以及动静分离、数据库的调用!!!
  • jmx_exporter安装
  • 怎么给自己的微信公众号留言?
  • Unity中 URP 下的棋盘格Shader
  • 杰发科技AC7840——SPM电源管理之低功耗模式
  • PCL 点云匹配 之NICP(Normal ICP)
  • 华脉智联融合通信一张图
  • Flink系列之:窗口Top-N
  • 【k8s】--insecure-registry详解 ( 访问仓库、https、http)