`
pda158
  • 浏览: 192778 次
社区版块
存档分类
最新评论

数据库中的事物处理

阅读更多
  数据库的更新通常都是由客观世界的所发生的事件引起的。为保证数据库内容的一致,就要将数据库的一组操作作为一个整体来进行,要么全部成功完成,要么全部失败退出。如果由于故障或其它原因而使一组操作中有一些完成,有一些未完成,则必然会使得数据库中的数据出现不一致,从而使得数据库的完整性受到破坏。因此,更新操作序列必须作为一个整体在DBMS执行时出现,即“要么全做,要么全不做”。SQL提供了事务处理的机制,来帮助DBMS实现上述的功能。
  事务处理
  事务处理(TRANSACTION)的每个语句是由一个或多个SQL语句序列结合在一起所形成的一个逻辑处理单元。事务处理中句都是完成整个任务的一部分工作,所有的语句组织在一起能够完成某一特定的任务。DBMS在对事务处理中的语句进行处理时,是按照下面的约定来进行的,这就是“事务处理中的所有语句被作为一个原子工作单位,所有的语句既可成功地被执行,也可以没有任何一个语句被执行”。DBMS负责完成这种约定,即使在事务处理中应用程序异常退出,或者是硬件出现故障等各种意外情况下,也是如此。在任何意外情况下,DBMS都负责确保在系统恢复正常后,数据库内容决不会出现“部分事务处理中的语句被执行完”的情况。
  sql语言
  sql语言为事务处理提供了两个重要的语句,它们是COMMIT和ROLLBACK语句。它们的使用格式是:
  COMMIT WORK
  ROLLBACK WORK
  COMMIT语句用于告诉DMBS,事务处理中的语句被成功执行完成了。被成功执行完成后,数据库内容将是完整的。而ROLLBACK语句则是用于告诉DBMS,事务处理中的语句不能被成功执行。这时候,DBMS将恢复本次事务处理期间对数据库所进行的修改,使之恢复到本次事务处理之前的状态。
QSqlDatabase::database().transaction();
QSqlQuery query;
query.exec("SELECT id FROM employee WHERE name = 'Torild Halvorsen'");
if (query.next())
{
int employeeId = query.value(0).toInt();
query.exec("INSERT INTO project (id, name, ownerid) "
"VALUES (201, 'Manhattan Project', "
+ QString::number(employeeId) + ")");
}
QSqlDatabase::database().commit();
  如果数据库引擎支持事务处理,则函数QSqlDriver::hasFeature(QSqlDriver::Transactions)将返回 真。
  可以通过调用QSqlDatabase::transaction()来初始化一个事务处理。之后执行你想在该事务处理的工作。
  完了再执行QSqlDatabase::commit()来提交事务处理或QSqlDatabase::rollback()取消事务处理。
6
4
分享到:
评论
1 楼 lvwenwen 2014-09-19  
mark ,  

相关推荐

    确定性分布式数据库中长事务处理方法研究.pdf

    在详细解读文件内容之前,我们先明确文章的主题,这篇文章的主题是关于“确定性分布式数据库中长事务处理方法研究”,探讨了在分布式数据库中处理长事务的技术挑战以及提出了解决方案。 文章首先指出,在确定性...

    浅谈数据库中事务处理和并发控制技术

    数据库事务处理和并发控制是数据库管理系统(DBMS)中的核心技术, Guarantees 数据库的可靠性和一致性。本文将详细介绍数据库事务处理和并发控制技术的概念、特性和实现机制。 一、事务处理概念 事务处理是数据库...

    数据库中事务处理技术及其在铁路中的应用.pdf

    数据库中事务处理技术及其在铁路中的应用.pdf

    确定性分布式数据库中长事务处理方法研究 (1).pdf

    为了解决这个问题,引入了基于语义的长事务处理机制,通过引入强可有序化标准来提高事务并发度,但这种方法主要适用于传统分布式数据库,而不太适用于确定性分布式数据库。 综上所述,本文针对确定性分布式数据库在...

    数据库与事务处理

    事务处理是数据库系统中的关键概念,它是确保数据一致性、完整性和可靠性的重要机制。 首先,我们需要了解什么是数据库。数据库是一个结构化的数据集合,它可以存储各种类型的信息,如文本、数字、图像等。常见的...

    数据库的事务处理方法

    数据库的事务处理是确保数据完整性、一致性和可靠性的核心机制,尤其在多用户并发环境下,事务扮演了至关重要的角色。事务处理确保多个SQL语句作为一个单一的工作单元执行,以达到以下两个关键特性: 1. 一致性:...

    数据库事务处理ppt

    数据库事务处理是数据库管理系统中的核心概念,用于确保数据的一致性和完整性。事务是数据库操作的基本单元,它包含一组逻辑操作,这些操作要么全部执行,要么全部不执行,以确保数据的原子性。事务处理主要关注两个...

    数据库与事务处理-(大师之作)

    数据库与事务处理是IT领域中的核心概念,尤其在企业级应用和互联网服务中扮演着至关重要的角色。数据库是存储和管理结构化数据的系统,而事务处理是确保这些数据一致性和完整性的关键技术。 数据库,简单来说,是一...

    C#中的事务处理,数据库编程中常用

    在C#中,我们可以利用ADO.NET框架来处理数据库事务。以下是一些关键步骤和知识点: 1. **连接数据库**:首先,我们需要建立与数据库的连接,这通常通过`SqlConnection`类实现。 2. **开启事务**:使用`...

    分布式数据库和事务处理11

    分布式数据库和事务处理课程讲义12-11

    数据库与事务处理-带书签pdf版本

    翻译的 数据库与事务处理-带书签pdf完整版本,非PPT

    java代码-使用java解决数据库事务处理的源代码

    java代码-使用java解决数据库事务处理的源代码 ——学习参考资料:仅用于个人学习使用!

    数据库的事务处理方法精讲

    在事务处理中,如果发生异常,通常会在finally块中回滚事务,以防止数据不一致。 7. **事务的嵌套**:在一个事务中可以启动另一个事务,这称为嵌套事务。在.NET中,可以通过检查Transaction.Current属性来判断是否...

    数据库事务处理课件

    共计132页的ppt,详细讲述数据库事务处理技术

    数据库并发事务处理机制详解与代码实践

    数据库并发事务处理是确保数据一致性和完整性的关键。通过理解事务的ACID特性、隔离级别和...通过本文的深入探讨和代码实践,读者应该能够对数据库并发事务处理机制有一个全面的了解,并能够在实际工作中应用这些知识。

    数据库基础数据库事务处理.pptx

    数据库事务处理中遇到的问题还包括了死锁、 starvation、 livelock等。 事务的隔离级别 事务的隔离级别是指数据库系统中事务之间的相互影响程度。常见的隔离级别有Read Uncommitted、Read Committed、Repeatable ...

    分布式数据库事务处理(COM+实现)

    安全性也是分布式数据库事务处理中的重要方面。COM+提供了一套完整的安全框架,包括用户身份验证、权限管理和角色控制。这些机制可以确保只有经过授权的组件和服务才能访问和修改数据,进一步增强了数据的保护。 在...

    分布式数据库和事务处理09

    在分布式数据库和事务处理中,C/S模式常常与数据库事务的ACID属性相结合,确保数据的一致性、隔离性、持久性和可用性。事务处理服务器专门负责协调和管理跨多个节点的事务,确保即使在网络不稳定或服务器故障的情况...

    数据库的事务处理与并发控制

    数据库处理的经典资料: 叫你处理事务 如何并发处理 瞧瞧吧 机不可失哟

Global site tag (gtag.js) - Google Analytics