`

sqlLite中的事务控制

 
阅读更多
转载:http://blog.sina.com.cn/s/blog_6fff321b0100t6z7.html
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。使用例子如下:
SQLiteDatabase db = ....;
db.beginTransaction();//开始事务
try {
    db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"hello", 4});
    db.execSQL("update person set name=? where personid=?", new Object[]{"hello", 1});
    db.setTransactionSuccessful();//调用此方法会在执行到endTransaction() 时提交当前事务,如果不调用此方法会回滚事务
} finally {
    db.endTransaction();//由事务的标志决定是提交事务,还是回滚事务
}
db.close();
上面两条SQL语句在同一个事务中执行。
分享到:
评论

相关推荐

    SqlLite中保存图片

    其中,`dbHelper`是继承自`SQLiteOpenHelper`的类,用于管理数据库的创建和版本控制。 4. **从数据库读取图片**: 当需要从数据库中取出图片时,可以使用`SELECT`语句查询数据,然后将字节数组还原为图片: ```java...

    sqllite 使用

    `BEGIN`, `COMMIT` 和 `ROLLBACK` 语句用于控制事务。如果一组操作中的任何一步失败,`ROLLBACK` 会撤销所有更改,而 `COMMIT` 则保存所有更改。 错误处理是使用 SQLite 时不可或缺的部分。例如,当执行 SQL 语句...

    Delphi_SQLLite.rar_DELPHI 数据库_Delphi SQLLite_delphi sqll_sqlite

    在Delphi中,可以通过`BeginTransaction`、`Commit`和`Rollback`方法来控制事务的生命周期。 错误处理是任何数据库操作中不可或缺的部分。在Delphi中,可以捕获`SQLError`异常来处理可能出现的错误,如连接失败、...

    SqlLite API和视图

    SQLite是一个开源的嵌入式关系型数据库,广泛应用于移动设备、桌面系统以及各种软件中,因为它具有轻量级、无服务器、零配置、事务支持等特性。SQLite API是用于与SQLite数据库进行交互的一系列函数,提供了创建、...

    sqllite3.exe——sqllite数据库

    4. **并发控制**:尽管SQLite3更适合单用户环境,但它也支持多用户同时访问,通过锁定机制实现数据的一致性。 5. **内存管理**:SQLite3可以根据需要动态调整内存使用,既可以完全在内存中运行,也可以将数据存储在...

    SQLlite的简单应用

    事务处理在SQLite中是自动提交的,但可以使用`BEGIN`, `COMMIT`, `ROLLBACK`来手动控制。这在处理多条相关操作时特别有用,确保数据的一致性。例如: ```sql BEGIN; INSERT INTO Users (ID, Name, Age) VALUES (2, ...

    Delphi_SQLLite应用实例

    在IT行业中,数据库管理系统是软件开发中的重要组成部分,而...这只是一个基础的实战指南,实际开发中可能涉及更复杂的数据操作、并发控制、安全性设置等。不断学习和实践,才能更好地掌握Delphi和SQLite的结合使用。

    ios中sqlLite的第三方库FMDB

    5. **事务处理**: FMDB支持事务操作,通过`beginTransaction`, `commit`, `rollback`方法控制事务的开始、提交和回滚。 6. **错误处理**: FMDatabase有一个`lastErrorMessage`属性,当执行失败时,可以获取错误信息...

    SQLlite_Labview_API及例子

    在LabVIEW中,可以通过执行BEGIN、COMMIT或ROLLBACK SQL语句来控制事务。 总的来说,SQLite LabVIEW API为LabVIEW开发者提供了强大的数据库操作能力,使他们能够在一个集成的环境中处理数据,而无需依赖外部数据库...

    sqlLite数据库

    SQLite具有无服务器、零配置、事务支持、SQL兼容等特性,使得它在众多小型应用程序中备受青睐。 SQLite数据库的核心特点包括: 1. **轻量级**:SQLite数据库不需要独立的服务器进程,可以直接集成到应用程序中,...

    文件数据库 SQLLITE

    用户可以使用BEGIN、COMMIT和ROLLBACK命令来控制事务。 2. **SQL标准兼容**:SQLite遵循SQL-92标准,支持大部分SQL语法,如SELECT、INSERT、UPDATE、DELETE等,并向后兼容更现代的SQL-99和SQL:2003标准。 3. **自...

    sqlLite.rar

    4. ACID事务:SQLite保证了事务的原子性、一致性、隔离性和持久性,确保数据在异常情况下也能保持完整。 5. 兼容性:SQLite支持SQL92标准,尽管不完全支持所有SQL特性,但常用的SELECT、INSERT、UPDATE、DELETE语句...

    sqllite压缩包

    它还支持权限管理,可以通过GRANT和REVOKE语句控制用户的访问权限。 7. 错误处理:SQLite返回错误码和错误消息,便于程序进行异常处理。 8. 扩展功能:SQLite可以通过编译时选项和运行时加载扩展函数来增加其功能...

    sqllite.zip_sqllite

    - 多版本并发控制(MVCC):保证多个用户同时访问数据库时的数据一致性。 - 压缩与加密:SQLite支持对数据库进行压缩和加密,保护数据安全。 - 扩展函数:可以编写C语言扩展,添加自定义的函数和虚拟表。 SQLite...

    delphi sqllite源码

    4. **源码集成**:将 SQLite 源码集成到 Delphi 工程中,开发者可以更好地控制数据库的使用,包括优化性能、调试错误、自定义功能等。这要求对 Delphi 的编译和链接过程有深入理解。 5. **API 调用**:SQLite 提供 ...

    SqlLite3.exe下载

    SQLite3.exe是一个轻量级的数据库引擎,常用于嵌入式环境或个人项目,因为它无需独立服务器进程且支持自包含、零配置、事务处理。在本例中,它被用作解决Subversion(SVN)报错“Previous operation has not ...

    sqllite 管理工具和查询工具

    4. 事务处理:支持SQL事务的开始、提交和回滚,保证数据一致性。 5. 触发器和存储过程:对于高级用户,这些工具通常也支持创建和管理触发器和存储过程。 三、SQLiteAdmin介绍 在提供的文件名称列表中提到了...

    sqllite.exe

    它的设计目标是提供一个单用户、零配置、事务性的数据库系统,使得开发者能够在应用程序中轻松地集成数据库功能,而无需安装单独的数据库服务器。 SQLite的主要特点和优势包括: 1. **小巧且独立**:SQLite不依赖...

    SQLLite-Source Code

    8. **事务和并发控制**:SQLite提供了强一致性的事务模型,源码将展示如何在.NET环境下实现这些事务操作。 9. **数据类型和兼容性**:SQLite是动态类型的,它能够自动适应多种数据类型。源码中会有关于如何处理这种...

    delphi7连sqllite3 事例和控件

    3. **事务处理示例**:演示如何在多条数据库操作之间使用TSQLTransaction组件进行事务处理,确保数据的一致性和完整性。如果其中一条语句失败,所有更改都将回滚,保持数据库的稳定状态。 而"一个控件"可能是专门为...

Global site tag (gtag.js) - Google Analytics