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.mzph.cn/news/232516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用vue3封装自用的echarts组件

封装的组件 目录 封装的组件在项目中使用 BaseChart.vue <script setup>import {ref,onMounted,onBeforeUnmount,watch,markRaw} from vue;import {debounce} from "/utils"; //节流函数 import * as echarts from "echarts";const emit defineEmit…

TSINGSEE青犀边缘AI计算基于车辆结构化数据的车辆监控方案

随着人工智能技术的不断发展&#xff0c;边缘AI技术逐渐成为智能交通领域的研究热点。其中&#xff0c;基于边缘AI的车辆结构化数据技术与车辆监控系统是实现智能交通系统的重要手段之一。为了满足市场需求&#xff0c;TSINGSEE青犀边缘AI智能分析网关/视频智能分析平台推出了一…

windows安装库报错

报错信息 ERROR: Command errored out with exit status 1: ‘D:\test\venv\Scripts\python.exe’ -u -c ‘import io, os, sys, setuptools, tokenize; sys.argv[0] ‘"’"‘C:\Users\aaa\AppData\Local\Temp\pip-install-j oni55ju\xxx_350c8d1094f749eb97d8f049…

《代码随想录》--二叉树(一)

《代码随想录》--二叉树 第一部分 1、二叉树的递归遍历2、二叉树的迭代遍历3、统一风格的迭代遍历代码4、二叉树的层序遍历226.翻转二叉树 1、二叉树的递归遍历 前序遍历 中序遍历 后序遍历 代码 前序遍历 class Solution {public List<Integer> preorderTraversal(T…

阿里云国际版CDN查询实时带宽步骤

调用DescribeDomainRealTimeBpsData查询加速域名的带宽数据。 接口说明 单用户调用频率&#xff1a;100次/秒。如果您不指定StartTime和EndTime&#xff0c;该接口默认返回过去1小时的数据&#xff1b;指定StartTime和EndTime&#xff0c;该接口返回指定时间段的数据。 返回…

opencv 入门二(播放视频)

环境配置如下&#xff1a; opencv 入门一&#xff08;显示一张图片&#xff09;-CSDN博客 用OpenCV播放视频就像显示图像一样简单。唯一不同的是&#xff0c;我们需要某种循环来读取视频序列中的每一帧。 源码如下&#xff1a; #include <iostream> #include <str…

实时时钟(RTC)的选择与设计:内置晶体与外置晶体的优缺点对比

实时时钟(RTC)作为一种具备独立计时和事件记录功能的设备&#xff0c;现已广泛应用于许多电子产品中&#xff0c;并对时钟的精度要求越来越高。根据封装尺寸、接口方式、附加功能、时钟精度和待机功耗等因素进行分类&#xff0c;市场上有各种种类的RTC产品可供选择。 而在设计…

epi 外延炉 简介

因半导体制造工艺复杂&#xff0c;各个环节需要的设备也不同&#xff0c;从流程工序分类来看&#xff0c;半导体设备主要可分为晶圆制造设备&#xff08;前道工序&#xff09;、封装测试设备&#xff08;后道工序&#xff09;等。 本文介绍影响着晶体管性能和可靠性的外延炉。 …

C#调用阿里云接口实现动态域名解析,支持IPv6(Windows系统下载可用)

电信宽带一般能申请到公网IP&#xff0c;但是是动态的&#xff0c;基本上每天都要变&#xff0c;所以想到做一个定时任务&#xff0c;随系统启动&#xff0c;网上看了不少博文很多都支持IPv4&#xff0c;自己动手写了一个。 &#xff08;私信可全程指导&#xff09; 部署步骤…

衡量芯片运算能力的指标

MACCs MACCs&#xff08;Multiply-accumulate operations&#xff09;表示乘加运算&#xff1a;b乘c加a为一次MACC指令&#xff0c;两次OP。 乘加运算是模型运算里的基本单元&#xff0c;矩阵的运算基本都是乘加。 TOPS TOPS&#xff08;Tera Operation Per Second&#xf…

QT isEnable、isSelected、setEnabled 、 setClickable

isEnable&#xff1a;是否启用部件的键盘和鼠标事件 isSelected&#xff1a;判断某个元素是否被选中 setEnabled 和setClickable参考&#xff1a; qt -- setEnabled() 、 setClickable()_qt setenabled-CSDN博客 void SwitchButton::mousePressEvent(QMouseEvent *event) {…

Vue 使用 js-audio-recorder 实现录制、播放、下载音频

Vue 使用 js-audio-recorder 实现录制、播放、下载 PCM 数据 Vue 使用 js-audio-recorder 实现录制、播放、下载 PCM 数据js-audio-recorder 简介Vue 项目创建下载相关依赖主界面设计设置路由组件及页面设计项目启动源码下载 Vue 使用 js-audio-recorder 实现录制、播放、下载 …

FPGA时序分析与时序约束(二)——时钟约束

目录 一、时序约束的步骤 二、时序网表和路径 2.1 时序网表 2.2 时序路径 三、时序约束的方式 三、时钟约束 3.1 主时钟约束 3.2 虚拟时钟约束 3.3 衍生时钟约束 3.4 时钟组约束 3.5 时钟特性约束 3.6 时钟延时约束 一、时序约束的步骤 上一章了解了时序分析和约束…

IDEA shorten command line介绍和JAR manifest 导致mybatis找不到接口类处理

如果类路径太长&#xff0c;或者有许多VM参数&#xff0c;程序就无法启动。原因是大多数操作系统都有命令行长度限制。在这种情况下&#xff0c;IntelliJIDEA将试图缩短类路径。最好选中 classpath file模式。 shorten command line 选项提供三种选项缩短类路径。 none&#x…

破局:国内母婴市场“红利减退”,母婴店如何拓客引流裂变?

破局&#xff1a;国内母婴市场“红利减退”&#xff0c;母婴店如何拓客引流裂变&#xff1f; 背景&#xff1a;中国母婴市场近年来人口出生率一直在恒定范围值&#xff0c;国家也在鼓励优生、多生政策&#xff0c;并且随着互联网的高速发展&#xff0c;人均可支配收入也在增加&…

你是无醇葡萄酒的爱好者吗?

不含酒精的蒸馏酒和起泡酒正在流行&#xff0c;尽管它们是葡萄酒市场中最小的细分市场之一&#xff0c;但需求和供应都在稳步增长。这是因为&#xff0c;和啤酒一样&#xff0c;消费者越来越多地询问无醇葡萄酒。 来自云仓酒庄品牌雷盛红酒分享不含酒精的酒好喝吗&#xff1f;尼…

单通道 6 阶高清视频滤波驱动 MS1631

MS1631 是一个单通道视频缓冲器&#xff0c;它内部集成 6dB 增益的轨到轨输出驱动器和 6 阶输出重建 滤波器。MS1631 的-3dB 带宽典型值为 72MHz&#xff0c;压摆率为 400V/us。MS1631 比无源 LC 滤波器与外加 驱动的解决方案能提供更好的图像质量。它单电源供电范围为2.5V 到…

从零开始学习Web自动化:用Python和Selenium实现网站登录功能!

Web自动化测试实战项目&#xff1a;使用Selenium和Python完成网站登录功能的自动化测试 本文将介绍如何使用Selenium和Python编写自动化测试脚本&#xff0c;对网站登录功能进行测试。我们将通过模拟用户在网站上输入用户名和密码&#xff0c;并点击登录按钮&#xff0c;来检验…

flink yarn-session 启动失败retrying connect to server 0.0.0.0/0.0.0.0:8032

原因分析&#xff0c;启动yarn-session.sh&#xff0c;会向resourcemanager的端口8032发起请求&#xff1a; 但是一直无法请求到8032端口&#xff0c;触发重试机制会不断尝试 备注&#xff1a;此问题出现时&#xff0c;我的环境ambari部署的HA 高可用hadoop&#xff0c;三个节点…

电力智能化管理系统

电力智能化管理系统是一种综合性的电力管理解决方案&#xff0c;它利用先进的信息技术、自动化技术和智能控制技术&#xff0c;实现对电力系统的全面管理和优化。 该系统依托电易云-智慧电力物联网&#xff0c;它的主要功能包括实时监测、故障预警、自动巡检、设备管理、数据分…