harmony 鸿蒙oh_rdb_transaction.h
oh_rdb_transaction.h
概述
提供与数据库事务相关的函数和枚举。
引用文件:
库: libnative_rdb_ndk.z.so
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core
起始版本: 18
相关模块: RDB
汇总
结构体
名称 | typedef关键字 | 描述 |
---|---|---|
OH_RDB_TransOptions | OH_RDB_TransOptions | 定义OH_RDB_TransOptions结构类型。 |
OH_Rdb_Transaction | OH_Rdb_Transaction | 定义OH_RDB_TransOptions结构类型。 |
枚举
名称 | typedef关键字 | 描述 |
---|---|---|
OH_RDB_TransType | OH_RDB_TransType | 表示关系型数据库事务类型。 |
函数
枚举类型说明
OH_RDB_TransType
enum OH_RDB_TransType
描述
表示关系型数据库事务类型。
起始版本: 18
枚举项 | 描述 |
---|---|
RDB_TRANS_DEFERRED = 0 | 在首次访问数据库之前,事务默认设置不会启动。 |
RDB_TRANS_IMMEDIATE | 数据库连接立即开始新的写入,而无需等待写入语句。 |
RDB_TRANS_EXCLUSIVE | 与RDB_TRANS_IMMEDIATE类型相似,写事务会立即启动。 RDB_TRANS_EXCLUSIVE和RDB_TRANS_IMMEDIATE类型在WAL模式下相同,但在其他日志模式下,RDB_TRANS_EXCLUSIVE会阻止其他数据库连接在事务进行时读取数据库。 |
RDB_TRANS_BUTT | RDB事务类型的最大值。 |
函数说明
OH_RdbTrans_CreateOptions()
OH_RDB_TransOptions *OH_RdbTrans_CreateOptions(void)
描述
创建事务配置对象。
起始版本: 18
返回:
类型 | 说明 |
---|---|
OH_RDB_TransOptions | 执行成功时返回指向OH_RDB_TransOptions实例的指针。否则返回nullptr。 使用完成后,必须通过OH_RdbTrans_DestroyOptions接口释放内存。 |
OH_RdbTrans_DestroyOptions()
int OH_RdbTrans_DestroyOptions(OH_RDB_TransOptions *opitons)
描述
销毁事务配置对象。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_RDB_TransOptions *opitons | 表示指向OH_RDB_TransOptions实例的指针。 |
返回:
类型 | 说明 |
---|---|
int | 返回错误码。 返回RDB_OK表示成功。 返回RDB_E_INVALID_ARGS表示无效参数。 |
OH_RdbTransOption_SetType()
int OH_RdbTransOption_SetType(OH_RDB_TransOptions *opitons, OH_RDB_TransType type)
描述
设置关系型数据库事务类型。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_RDB_TransOptions *opitons | 表示指向OH_RDB_TransOptions实例的指针。 |
OH_RDB_TransType type | 表示关系型数据库事务类型。 |
返回:
类型 | 说明 |
---|---|
int | 返回错误码。 返回RDB_OK表示成功。 返回RDB_E_INVALID_ARGS表示无效参数。 |
OH_RdbTrans_Commit()
int OH_RdbTrans_Commit(OH_Rdb_Transaction *trans)
描述
提交事务。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
返回:
类型 | 说明 |
---|---|
int | 返回执行结果。 返回RDB_OK表示成功。 返回RDB_E_ERROR表示数据库常见错误。 返回RDB_E_INVALID_ARGS表示无效参数。 返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。 返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。 返回RDB_E_SQLITE_CORRUPT表示数据库损坏。 返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。 返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。 返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。 返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。 返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。 |
OH_RdbTrans_Rollback()
int OH_RdbTrans_Rollback(OH_Rdb_Transaction *trans)
描述
回滚事务。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
返回:
类型 | 说明 |
---|---|
int | 返回执行结果。 返回RDB_OK表示成功。 返回RDB_E_ERROR表示数据库常见错误。 返回RDB_E_INVALID_ARGS表示无效参数。 返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。 返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。 返回RDB_E_SQLITE_CORRUPT表示数据库损坏。 返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。 返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。 返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。 返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。 返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。 |
OH_RdbTrans_Insert()
int OH_RdbTrans_Insert(OH_Rdb_Transaction *trans, const char *table, const OH_VBucket *row, int64_t *rowId)
描述
将一行数据插入到目标表中。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
const char *table | 表示目标表。 |
const OH_VBucket *row | 表示要插入到表中的数据行。 |
int64_t *rowId | 输出参数,表示插入后返回的行号。 |
返回:
类型 | 说明 |
---|---|
int | 返回执行结果。 返回RDB_OK表示成功。 返回RDB_E_ERROR表示数据库常见错误。 返回RDB_E_INVALID_ARGS表示无效参数。 返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。 返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL日志文件大小超过默认值。 返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。 返回RDB_E_SQLITE_CORRUPT表示数据库损坏。 返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。 返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。 返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。 返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。 返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。 返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。 返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。 返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 |
OH_RdbTrans_InsertWithConflictResolution()
int OH_RdbTrans_InsertWithConflictResolution(OH_Rdb_Transaction *trans, const char *table, const OH_VBucket *row,Rdb_ConflictResolution resolution, int64_t *rowId)
描述
将一行数据插入到目标表中,支持冲突解决。
起始版本: 20
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
const char *table | 表示目标表名称。 |
const OH_VBucket *row | 表示要插入到表中的数据。 |
Rdb_ConflictResolution resolution | 表示发生冲突时的解决策略。 |
int64_t *rowId | 输出参数,表示插入成功后返回的行号。 |
返回:
类型 | 说明 |
---|---|
int | 返回执行结果。 返回RDB_OK表示成功。 返回RDB_E_ERROR表示数据库常见错误。 返回RDB_E_INVALID_ARGS表示输入参数无效。 返回RDB_E_ALREADY_CLOSED表示数据库已关闭。 返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL日志文件大小超过默认值。 返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。 返回RDB_E_SQLITE_CORRUPT表示数据库损坏。 返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。 返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。 返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。 返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。 返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。 返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。 返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。 返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 返回RDB_E_SQLITE_CONSTRAINT表示SQLite错误码:违反约束导致操作中止。 |
OH_RdbTrans_BatchInsert()
int OH_RdbTrans_BatchInsert(OH_Rdb_Transaction *trans, const char *table, const OH_Data_VBuckets *rows,Rdb_ConflictResolution resolution, int64_t *changes)
描述
将一组数据批量插入到目标表中。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
const char *table | 表示目标表。 |
const OH_Data_VBuckets *rows | 表示要插入到表中的一组数据。 |
Rdb_ConflictResolution resolution | 表示发生冲突时的解决策略。 |
int64_t *changes | 输出参数,表示插入成功的次数。 |
返回:
类型 | 说明 |
---|---|
int | 返回执行结果。 返回RDB_OK表示成功。 返回RDB_E_ERROR表示数据库常见错误。 返回RDB_E_INVALID_ARGS表示无效参数。 返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。 返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL日志文件大小超过默认值。 返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。 返回RDB_E_SQLITE_CORRUPT表示数据库损坏。 返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。 返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。 返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。 返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。 返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。 返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。 返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。 返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 返回RDB_E_SQLITE_CONSTRAINT表示SQLite错误码:SQLite约束。 |
OH_RdbTrans_Update()
int OH_RdbTrans_Update(OH_Rdb_Transaction *trans, const OH_VBucket *row, const OH_Predicates *predicates,int64_t *changes)
描述
根据指定的条件更新数据库中的数据。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
const OH_VBucket *row | 表示要更新到表中的数据行。 |
const OH_Predicates *predicates | 表示OH_Predicates指定的更新条件。 |
int64_t *changes | 输出参数,表示更新成功的次数。 |
返回:
类型 | 说明 |
---|---|
int | 返回执行结果。 返回RDB_OK表示成功。 返回RDB_E_ERROR表示数据库常见错误。 返回RDB_E_INVALID_ARGS表示无效参数。 返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。 返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL日志文件大小超过默认值。 返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。 返回RDB_E_SQLITE_CORRUPT表示数据库损坏。 返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。 返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。 返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。 返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。 返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。 返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。 返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。 返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 |
OH_RdbTrans_UpdateWithConflictResolution()
int OH_RdbTrans_UpdateWithConflictResolution(OH_Rdb_Transaction *trans, const OH_VBucket *row,const OH_Predicates *predicates, Rdb_ConflictResolution resolution, int64_t *changes)
描述
根据指定条件更新数据库中的数据,并支持冲突解决。
起始版本: 20
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
const OH_VBucket *row | 表示要更新到表中的数据。 |
const OH_Predicates *predicates | 表示OH_Predicates指定的更新条件。 |
Rdb_ConflictResolution resolution | 表示发生冲突时的解决策略。 |
int64_t *changes | 输出参数,表示更新成功的行数。 |
返回:
类型 | 说明 |
---|---|
int | 返回执行结果。 返回RDB_OK表示成功。 返回RDB_E_ERROR表示数据库常见错误。 返回RDB_E_INVALID_ARGS表示输入参数无效。 返回RDB_E_ALREADY_CLOSED表示数据库已关闭。 返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL日志文件大小超过默认值。 返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。 返回RDB_E_SQLITE_CORRUPT表示数据库损坏。 返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。 返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。 返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。 返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。 返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。 返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。 返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。 返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 返回RDB_E_SQLITE_CONSTRAINT表示SQLite错误码:违反约束导致操作中止。 |
OH_RdbTrans_Delete()
int OH_RdbTrans_Delete(OH_Rdb_Transaction *trans, const OH_Predicates *predicates, int64_t *changes)
描述
根据指定条件从数据库中删除数据。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
const OH_Predicates *predicates | 表示OH_Predicates指定的删除条件。 |
int64_t *changes | 表示删除成功的次数。 |
返回:
类型 | 说明 |
---|---|
int | 返回执行结果。 返回RDB_OK表示成功。 返回RDB_E_ERROR表示数据库常见错误。 返回RDB_E_INVALID_ARGS表示无效参数。 返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。 返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL日志文件大小超过默认值。 返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。 返回RDB_E_SQLITE_CORRUPT表示数据库损坏。 返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。 返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。 返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。 返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。 返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。 返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。 返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。 返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 |
OH_RdbTrans_Query()
OH_Cursor *OH_RdbTrans_Query(OH_Rdb_Transaction *trans, const OH_Predicates *predicates, const char *columns[],int len)
描述
根据指定的条件查询数据库中的数据。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
const OH_Predicates *predicates | 表示OH_Predicates指定的查询条件。 |
columns | 表示要查询的列,如果传入空值,则查询适用于所有列。 |
int len | 表示列中元素的个数。 |
返回:
类型 | 说明 |
---|---|
OH_Cursor | 如果执行成功,则返回指向OH_Cursor实例的指针。如果数据库已关闭或数据库没有响应,则返回空。 |
OH_RdbTrans_QuerySql()
OH_Cursor *OH_RdbTrans_QuerySql(OH_Rdb_Transaction *trans, const char *sql, const OH_Data_Values *args)
描述
根据SQL语句查询数据库中的数据。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
const char *sql | 表示要执行的SQL语句。 |
const OH_Data_Values *args | 表示指向OH_Data_Values的指针。 |
返回:
类型 | 说明 |
---|---|
OH_Cursor | 如果执行成功,则返回指向OH_Cursor实例的指针。如果数据库已关闭或数据库没有响应,则返回空。 |
OH_RdbTrans_Execute()
int OH_RdbTrans_Execute(OH_Rdb_Transaction *trans, const char *sql, const OH_Data_Values *args, OH_Data_Value **result)
描述
执行包含指定参数的SQL语句。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
const char *sql | 表示要执行的SQL语句。 |
const OH_Data_Values *args | SQL语句中包含的参数。 |
OH_Data_Value **result | 执行成功时指向OH_Data_Value实例的指针。使用完成后,必须通过OH_Value_Destroy接口释放内存。 |
返回:
类型 | 说明 |
---|---|
int | 返回执行结果。 返回RDB_OK表示成功。 返回RDB_E_ERROR表示数据库常见错误。 返回RDB_E_INVALID_ARGS表示无效参数。 返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。 返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL日志文件大小超过默认值。 返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。 返回RDB_E_SQLITE_CORRUPT表示数据库损坏。 返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。 返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。 返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。 返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。 返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。 返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。 返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。 返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 |
OH_RdbTrans_Destroy()
int OH_RdbTrans_Destroy(OH_Rdb_Transaction *trans)
描述
销毁事务对象。
起始版本: 18
参数:
参数项 | 描述 |
---|---|
OH_Rdb_Transaction *trans | 表示指向OH_Rdb_Transaction实例的指针。 |
返回:
类型 | 说明 |
---|---|
int | 返回错误码。 返回RDB_OK表示成功。 返回RDB_E_INVALID_ARGS表示无效参数。 |
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Class (RdbPredicates)
harmony 鸿蒙arkts-apis-data-relationalStore-RdbStore
harmony 鸿蒙Interface (ResultSet)
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦