温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

dotConnect for Oracle入门指南(六):使用事务

发布时间:2020-07-11 14:32:25 来源:网络 阅读:198 作者:复活节玩偶 栏目:关系型数据库

【下载dotConnect for Oracle最新版本】

dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技术上,为基于Oracle数据库的应用程序提供完整的解决方案。它为设计应用程序结构带来了新的方法,提高工作效率,使数据库应用程序的开发更简便。

使用事务

  • 了解事务

  • 本地事务

  • OCI模式下的分布式事务

  • 直接模式下的分布式事务

了解事务

事务是一个或多个被视为单个工作单元的操作,完全完成或完全无效(“全部或无”)。如果事务中某一点发生故障,则所有更新都可以回滚到其事务前状态。事务必须符合ACID属性-原子性、一致性、隔离性和持久性,以确保数据一致性。

如果一个事务涉及同一数据库中的多个表,那么PL/SQL中的显式事务通常执行得更好。您可以在SQL中使用Commit和Rollback语句分别修复和放弃当前PL/SQL块中以前的命令。

否则,可以通过设计用于Oracle数据库的库/程序集中的特殊命令类来实现具有普通SQL的事务。例如,您可以使用devart.data.oracle.oraclecommand:在oraclecommand的连接上启动事务,通过此oraclecommand执行多个SQL语句,并在必要时提交/回滚所有操作。请参阅本地事务主题中的示例。

本文描述了从.NET代码(不包含envolving PL/SQL事务)操作事务的方法——这是处理事务最常见的情况。关于您的任务,您可以选择要实现的事务类型-本地或分布式。当事务是单阶段事务并且由数据库直接处理时,被认为是本地事务的事务。分布式事务是一个影响多个资源的事务,它由事务监视器协调,并使用故障保护机制(如两阶段提交)来解决事务。

注意:Oracle不支持SQL Server中使用的可升级事务,分布式事务的实现在OCI和Direct模式下有所不同。还要考虑到TransactionScope(分布式事务)仅在处理时完成。

本地事务

dotConnect for Oracle具有用于执行本地事务的OracleTransaction对象。当一个连接对象上的多个操作应作为一个事务执行时,使用OracleTransaction。应用程序通过对OracleConnection对象调用BeginTransaction来创建OracleTransaction对象。与事务相关联的所有后续操作(例如,提交或中止事务)都在OracleTransaction对象上执行。OracleConnection和OracleTransaction之间的相关性始终为1:1。因此,一次只能为单独的OracleConnection创建一个OracleTransaction。

例子:

下面的示例创建OracleConnection和OracleTransaction。它还演示了如何使用BeginTransaction、Commit和Rollback方法。

1
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI