SQLiteDatabase.BeginTransactionReadOnly 方法

定义

在 DEFERRED 模式下开始事务,该事务是只读的特定于 android 的约束。

[Android.Runtime.Register("beginTransactionReadOnly", "()V", "GetBeginTransactionReadOnlyHandler", ApiSince=35)]
public virtual void BeginTransactionReadOnly();
[<Android.Runtime.Register("beginTransactionReadOnly", "()V", "GetBeginTransactionReadOnlyHandler", ApiSince=35)>]
abstract member BeginTransactionReadOnly : unit -> unit
override this.BeginTransactionReadOnly : unit -> unit
属性

注解

在 DEFERRED 模式下开始事务,该事务是只读的特定于 android 的约束。 数据库可能不会在只读事务中修改。

只读事务可以与其他只读事务同时运行,如果数据库处于 WAL 模式,则它们也可能同时与 IMMEDIATE 或 EXCLUSIVE 事务一起运行。 temp架构可以在只读事务期间修改;如果事务是#setTransactionSuccessful,对临时表的修改可能对某些后续事务可见。

事务可以嵌套。 但是,嵌套事务不会改变事务的行为。 嵌套事务可以是三种事务类型中的任何一种,但如果最外部的类型是只读的,则嵌套事务将保持只读状态,而不管它们是如何启动的。

下面是只读事务的标准成语:

db.beginTransactionReadOnly();
              try {
                ...
              } finally {
                db.endTransaction();
              }

Java文档android.database.sqlite.SQLiteDatabase.beginTransactionReadOnly()

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于