1# RDB
2
3
4## 概述
5
6关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的 对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。
7
8**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
9
10**起始版本:** 10
11
12
13## 汇总
14
15
16### 文件
17
18| 名称 | 描述 |
19| -------- | -------- |
20| [oh_cursor.h](oh__cursor_8h.md) | 提供通过查询数据库生成的数据库结果集的访问方法。<br/>**引用文件:** <database/rdb/oh_cursor.h><br/>**库:** libnative_rdb_ndk.z.so<br/> |
21| [oh_predicates.h](oh__predicates_8h.md) | 表示关系型数据库(RDB)的谓词。<br/>**引用文件:** <database/rdb/oh_predicates.h><br/>**库:** libnative_rdb_ndk.z.so<br/> |
22| [oh_value_object.h](oh__value__object_8h.md) | 提供类型转换方法。<br/>**引用文件:** <database/rdb/oh_value_object.h><br/>**库:** libnative_rdb_ndk.z.so<br/> |
23| [oh_values_bucket.h](oh__values__bucket_8h.md) | 用于存储键值对的类型。<br/>**引用文件:** <database/rdb/oh_values_bucket.h><br/>**库:** libnative_rdb_ndk.z.so<br/> |
24| [relational_store.h](relational__store_8h.md) | 提供管理关系数据库(RDB)方法的接口。<br/>**引用文件:** <database/rdb/relational_store.h><br/>**库:** libnative_rdb_ndk.z.so<br/> |
25| [relational_store_error_code.h](relational__store__error__code_8h.md) | 声明关系型数据库(RDB)的错误码信息。<br/>**引用文件:** <database/rdb/relational_store_error_code.h><br/>**库:** libnative_rdb_ndk.z.so |
26
27
28### 结构体
29
30| 名称 | 描述 |
31| -------- | -------- |
32| [OH_Cursor](_o_h___cursor.md) | 表示结果集。 |
33| [OH_Predicates](_o_h___predicates.md) | 表示谓词。 |
34| [OH_VObject](_o_h___v_object.md) | 表示允许的数据字段类型。 |
35| [OH_VBucket](_o_h___v_bucket.md) | 用于存储键值对的类型。 |
36| [OH_Rdb_Config](_o_h___rdb___config.md) | 管理关系数据库配置。 |
37| [OH_Rdb_Store](_o_h___rdb___store.md) | 表示数据库类型。 |
38| [Rdb_DistributedConfig](_rdb___distributed_config.md) | 记录表的分布式配置信息。 |
39| [Rdb_KeyInfo](_rdb___key_info.md) | 描述发生变化的行的主键或者行号。 |
40| [Rdb_KeyInfo::Rdb_KeyData](union_rdb___key_info_1_1_rdb___key_data.md) | 存放变化的具体数据。 |
41| [Rdb_ChangeInfo](_rdb___change_info.md) | 记录端云同步过程详情。 |
42| [Rdb_SubscribeCallback](union_rdb___subscribe_callback.md) | 表示回调函数。 |
43| [Rdb_DataObserver](_rdb___data_observer.md) | 表示数据观察者。 |
44| [Rdb_Statistic](_rdb___statistic.md) | 描述数据库表的端云同步过程的统计信息。 |
45| [Rdb_TableDetails](_rdb___table_details.md) | 描述数据库表执行端云同步任务上传和下载的统计信息。 |
46| [Rdb_ProgressDetails](_rdb___progress_details.md) | 描述数据库整体执行端云同步任务上传和下载的统计信息。 |
47| [Rdb_ProgressObserver](_rdb___progress_observer.md) | 端云同步进度观察者。 |
48
49
50### 宏定义
51
52| 名称 | 描述 |
53| -------- | -------- |
54| [DISTRIBUTED_CONFIG_VERSION](#distributed_config_version)&nbsp;&nbsp;&nbsp;1 | 描述[Rdb_DistributedConfig](_rdb___distributed_config.md)的版本。 |
55| [DISTRIBUTED_CHANGE_INFO_VERSION](#distributed_change_info_version)&nbsp;&nbsp;&nbsp;1 | 描述[Rdb_ChangeInfo](_rdb___change_info.md)的版本。 |
56| [DISTRIBUTED_PROGRESS_DETAIL_VERSION](#distributed_progress_detail_version)&nbsp;&nbsp;&nbsp;1 | 描述[Rdb_ProgressDetails](_rdb___progress_details.md)的版本。 |
57
58
59### 类型定义
60
61| 名称 | 描述 |
62| -------- | -------- |
63| typedef struct [OH_Rdb_ConfigV2](#oh_rdb_configv2) [OH_Rdb_ConfigV2](#oh_rdb_configv2) | 管理关系数据库配置,与[OH_Rdb_Config](_o_h___rdb___config.md)的区别是该结构体成员变量不对外暴露,使用一系列方法配置该结构体的属性。 |
64| typedef enum [Rdb_DBType](#rdb_dbtype) [Rdb_DBType](#rdb_dbtype) | 描述数据库的内核类型。 |
65| [OH_ColumnType](#oh_columntype) | 数据库字段类型。 |
66| [OH_Cursor](#oh_cursor) | 表示结果集。 |
67| [OH_OrderType](#oh_ordertype) | 排序方式。 |
68| [OH_Predicates](#oh_predicates) | 表示谓词。 |
69| [OH_VObject](#oh_vobject) | 表示允许的数据字段类型。 |
70| [OH_VBucket](#oh_vbucket) | 用于存储键值对的类型。 |
71| [OH_Rdb_SecurityLevel](#oh_rdb_securitylevel) | 数据库的安全级别枚举。 |
72| [Rdb_SecurityArea](#rdb_securityarea) | 描述数据库的安全区域等级。 |
73| [Rdb_DistributedType](#rdb_distributedtype) | 描述表的分布式类型的枚举。 |
74| [Rdb_DistributedConfig](#rdb_distributedconfig) | 记录表的分布式配置信息。 |
75| [Rdb_ChangeType](#rdb_changetype) | 描述数据变更类型。 |
76| [Rdb_KeyInfo](#rdb_keyinfo) | 描述发生变化的行的主键或者行号。 |
77| [Rdb_ChangeInfo](#rdb_changeinfo) | 记录端云同步过程详情。 |
78| [Rdb_SubscribeType](#rdb_subscribetype) | 描述订阅类型。 |
79| [Rdb_BriefObserver](#rdb_briefobserver) | 端云数据更改事件的回调函数。 |
80| [Rdb_DetailsObserver](#rdb_detailsobserver) | 端云数据更改事件的细节的回调函数。 |
81| [Rdb_SubscribeCallback](#rdb_subscribecallback) | 表示回调函数。 |
82| [Rdb_DataObserver](#rdb_dataobserver) | 表示数据观察者。 |
83| [Rdb_SyncMode](#rdb_syncmode) | 表示数据库的同步模式。 |
84| [Rdb_Statistic](#rdb_statistic) | 描述数据库表的端云同步过程的统计信息。 |
85| [Rdb_TableDetails](#rdb_tabledetails) | 描述数据库表执行端云同步任务上传和下载的统计信息。 |
86| [Rdb_Progress](#rdb_progress) | 描述端云同步过程。 |
87| [Rdb_ProgressCode](#rdb_progresscode) | 表示端云同步过程的状态。 |
88| [Rdb_ProgressDetails](#rdb_progressdetails) | 描述数据库整体执行端云同步任务上传和下载的统计信息。 |
89| [Rdb_ProgressCallback](#rdb_progresscallback) | 端云同步进度的回调函数。 |
90| [Rdb_SyncCallback](#rdb_synccallback) | 数据库端云同步的回调函数。 |
91| [Rdb_ProgressObserver](#rdb_progressobserver) | 端云同步进度观察者。 |
92| [OH_Rdb_ErrCode](#oh_rdb_errcode) | 表示错误码信息。 |
93
94
95### 枚举
96
97| 名称 | 描述 |
98| -------- | -------- |
99| [Rdb_DBType](#rdb_dbtype-1) { RDB_SQLITE = 1, RDB_CAYLEY = 2, DBTYPE_BUTT = 64 } | 描述数据库的内核类型。 |
100| [OH_ColumnType](#oh_columntype-1) {<br/>TYPE_NULL = 0, TYPE_INT64, TYPE_REAL, TYPE_TEXT,<br/>TYPE_BLOB, TYPE_ASSET, TYPE_ASSETS<br/>} | 数据库字段类型。 |
101| [OH_OrderType](#oh_ordertype-1) { ASC = 0, DESC = 1 } | 排序方式。 |
102| [OH_Rdb_SecurityLevel](#oh_rdb_securitylevel-1) { S1 = 1, S2, S3, S4 } | 数据库的安全级别枚举。 |
103| [Rdb_SecurityArea](#rdb_securityarea-1) { RDB_SECURITY_AREA_EL1 = 1, RDB_SECURITY_AREA_EL2, RDB_SECURITY_AREA_EL3, RDB_SECURITY_AREA_EL4 } | 描述数据库的安全区域等级。 |
104| [Rdb_DistributedType](#rdb_distributedtype-1) { RDB_DISTRIBUTED_CLOUD } | 描述表的分布式类型的枚举。 |
105| [Rdb_ChangeType](#rdb_changetype-1) { RDB_DATA_CHANGE, RDB_ASSET_CHANGE } | 描述数据变更类型。 |
106| [Rdb_SubscribeType](#rdb_subscribetype-1) { RDB_SUBSCRIBE_TYPE_CLOUD, RDB_SUBSCRIBE_TYPE_CLOUD_DETAILS, RDB_SUBSCRIBE_TYPE_LOCAL_DETAILS } | 描述订阅类型。 |
107| [Rdb_SyncMode](#rdb_syncmode-1) { RDB_SYNC_MODE_TIME_FIRST, RDB_SYNC_MODE_NATIVE_FIRST, RDB_SYNC_MODE_CLOUD_FIRST } | 表示数据库的同步模式。 |
108| [Rdb_Progress](#rdb_progress-1) { RDB_SYNC_BEGIN, RDB_SYNC_IN_PROGRESS, RDB_SYNC_FINISH } | 描述端云同步过程。 |
109| [Rdb_ProgressCode](#rdb_progresscode-1) {<br/>RDB_SUCCESS, RDB_UNKNOWN_ERROR, RDB_NETWORK_ERROR, RDB_CLOUD_DISABLED,<br/>RDB_LOCKED_BY_OTHERS, RDB_RECORD_LIMIT_EXCEEDED, RDB_NO_SPACE_FOR_ASSET<br/>} | 表示端云同步过程的状态。 |
110| [OH_Rdb_ErrCode](#oh_rdb_errcode-1) {<br/>RDB_ERR = -1, RDB_OK = 0, E_BASE = 14800000, RDB_E_NOT_SUPPORTED = 801,<br/>RDB_E_ERROR = E_BASE, RDB_E_INVALID_ARGS = (E_BASE + 1), RDB_E_CANNOT_UPDATE_READONLY = (E_BASE + 2), RDB_E_REMOVE_FILE = (E_BASE + 3),<br/>RDB_E_EMPTY_TABLE_NAME = (E_BASE + 5), RDB_E_EMPTY_VALUES_BUCKET = (E_BASE + 6), RDB_E_EXECUTE_IN_STEP_QUERY = (E_BASE + 7), RDB_E_INVALID_COLUMN_INDEX = (E_BASE + 8),<br/>RDB_E_INVALID_COLUMN_TYPE = (E_BASE + 9), RDB_E_EMPTY_FILE_NAME = (E_BASE + 10), RDB_E_INVALID_FILE_PATH = (E_BASE + 11), RDB_E_TRANSACTION_IN_EXECUTE = (E_BASE + 12),<br/>RDB_E_INVALID_STATEMENT = (E_BASE + 13), RDB_E_EXECUTE_WRITE_IN_READ_CONNECTION = (E_BASE + 14), RDB_E_BEGIN_TRANSACTION_IN_READ_CONNECTION = (E_BASE + 15), RDB_E_NO_TRANSACTION_IN_SESSION = (E_BASE + 16),<br/>RDB_E_MORE_STEP_QUERY_IN_ONE_SESSION = (E_BASE + 17), RDB_E_NO_ROW_IN_QUERY = (E_BASE + 18), RDB_E_INVALID_BIND_ARGS_COUNT = (E_BASE + 19), RDB_E_INVALID_OBJECT_TYPE = (E_BASE + 20),<br/>RDB_E_INVALID_CONFLICT_FLAG = (E_BASE + 21), RDB_E_HAVING_CLAUSE_NOT_IN_GROUP_BY = (E_BASE + 22), RDB_E_NOT_SUPPORTED_BY_STEP_RESULT_SET = (E_BASE + 23), RDB_E_STEP_RESULT_SET_CROSS_THREADS = (E_BASE + 24),<br/>RDB_E_STEP_RESULT_QUERY_NOT_EXECUTED = (E_BASE + 25), RDB_E_STEP_RESULT_IS_AFTER_LAST = (E_BASE + 26), RDB_E_STEP_RESULT_QUERY_EXCEEDED = (E_BASE + 27), RDB_E_STATEMENT_NOT_PREPARED = (E_BASE + 28),<br/>RDB_E_EXECUTE_RESULT_INCORRECT = (E_BASE + 29), RDB_E_STEP_RESULT_CLOSED = (E_BASE + 30), RDB_E_RELATIVE_PATH = (E_BASE + 31), RDB_E_EMPTY_NEW_ENCRYPT_KEY = (E_BASE + 32),<br/>RDB_E_CHANGE_UNENCRYPTED_TO_ENCRYPTED = (E_BASE + 33), RDB_E_CHANGE_ENCRYPT_KEY_IN_BUSY = (E_BASE + 34), RDB_E_STEP_STATEMENT_NOT_INIT = (E_BASE + 35), RDB_E_NOT_SUPPORTED_ATTACH_IN_WAL_MODE = (E_BASE + 36),<br/>RDB_E_CREATE_FOLDER_FAIL = (E_BASE + 37), RDB_E_SQLITE_SQL_BUILDER_NORMALIZE_FAIL = (E_BASE + 38), RDB_E_STORE_SESSION_NOT_GIVE_CONNECTION_TEMPORARILY = (E_BASE + 39), RDB_E_STORE_SESSION_NO_CURRENT_TRANSACTION = (E_BASE + 40),<br/>RDB_E_NOT_SUPPORT = (E_BASE + 41), RDB_E_INVALID_PARCEL = (E_BASE + 42), RDB_E_QUERY_IN_EXECUTE = (E_BASE + 43), RDB_E_SET_PERSIST_WAL = (E_BASE + 44),<br/>RDB_E_DB_NOT_EXIST = (E_BASE + 45), RDB_E_ARGS_READ_CON_OVERLOAD = (E_BASE + 46), RDB_E_WAL_SIZE_OVER_LIMIT = (E_BASE + 47), RDB_E_CON_OVER_LIMIT = (E_BASE + 48)<br/>} | 表示错误码信息。 |
111
112
113### 函数
114
115| 名称 | 描述 |
116| -------- | -------- |
117| [OH_Rdb_ConfigV2](#oh_rdb_configv2) \* [OH_Rdb_CreateConfig](#oh_rdb_createconfig) () | 创建一个[OH_Rdb_ConfigV2](#oh_rdb_configv2)实例,并返回指向该实例的指针。 |
118| int [OH_Rdb_DestroyConfig](#oh_rdb_destroyconfig) ([OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config) | 销毁由[OH_Rdb_CreateConfig](#oh_rdb_createconfig)创建的[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象。 |
119| int [OH_Rdb_SetDatabaseDir](#oh_rdb_setdatabasedir) ([OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config, const char \*databaseDir) | 给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库文件路径。 |
120| int [OH_Rdb_SetStoreName](#oh_rdb_setstorename) ([OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config, const char \*storeName) | 给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库名称。 |
121| int [OH_Rdb_SetBundleName](#oh_rdb_setbundlename) ([OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config, const char \*bundleName) | 给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置应用包名。 |
122| int [OH_Rdb_SetModuleName](#oh_rdb_setmodulename) ([OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config, const char \*moduleName) | 给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置应用模块名。 |
123| int [OH_Rdb_SetEncrypted](#oh_rdb_setencrypted) ([OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config, bool isEncrypted) | 给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库是否加密。 |
124| int [OH_Rdb_SetSecurityLevel](#oh_rdb_setsecuritylevel) ([OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config, int securityLevel) | 给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库安全级别[OH_Rdb_SecurityLevel](#oh_rdb_securitylevel)。 |
125| int [OH_Rdb_SetArea](#oh_rdb_setarea) ([OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config, int area) | 给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库安全区域等级[Rdb_SecurityArea](#rdb_securityarea)。 |
126| int [OH_Rdb_SetDbType](#oh_rdb_setdbtype) ([OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config, int dbType) | 给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库类型[Rdb_DBType](#rdb_dbtype)。 |
127| const int \* [OH_Rdb_GetSupportedDbType](#oh_rdb_getsupporteddbtype) (int \*typeCount) | 获得支持的数据库类型[Rdb_DBType](#rdb_dbtype)。 |
128| [OH_Rdb_Store](_o_h___rdb___store.md) \* [OH_Rdb_CreateOrOpen](#oh_rdb_createoropen) (const [OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config, int \*errCode) | 使用指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2), 获得一个对应的[OH_Rdb_Store](_o_h___rdb___store.md)实例,用来操作关系型数据库。 |
129| int [OH_Rdb_DeleteStoreV2](#oh_rdb_deletestorev2) (const [OH_Rdb_ConfigV2](#oh_rdb_configv2) \*config) | 使用指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2)删除数据库。当使用向量数据库时,在调用接口前,应当确保向量数据库已经被正确关闭。 |
130| int [OH_Rdb_ExecuteByTrxId](#oh_rdb_executebytrxid) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, int64_t trxId, const char \*sql) | 使用指定的事务ID执行无返回值的SQL语句。 |
131| int [OH_Rdb_BeginTransWithTrxId](#oh_rdb_begintranswithtrxid) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, int64_t \*trxId) | 在开始执行SQL语句之前,开始事务, 并获得该事务的ID。 |
132| int [OH_Rdb_RollBackByTrxId](#oh_rdb_rollbackbytrxid) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, int64_t trxId) | 使用指定的事务ID, 回滚已经执行的SQL语句。 |
133| int [OH_Rdb_CommitByTrxId](#oh_rdb_commitbytrxid) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, int64_t trxId) | 使用指定的事务ID, 提交已经执行的SQL语句。 |
134| [OH_VBucket_PutAsset](#oh_vbucket_putasset) ([OH_VBucket](_o_h___v_bucket.md) \*bucket, const char \*field, OH_Asset \*value) | 将**OH_Asset**类型的对象放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。 |
135| [OH_VBucket_PutAssets](#oh_vbucket_putassets) ([OH_VBucket](_o_h___v_bucket.md) \*bucket, const char \*field, OH_Asset \*\*value, int count) | 将**OH_Asset**类型的对象数组放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。 |
136| [OH_Rdb_CreateValueObject](#oh_rdb_createvalueobject) () | 创建[OH_VObject](_o_h___v_object.md)实例。 |
137| [OH_Rdb_CreateValuesBucket](#oh_rdb_createvaluesbucket) () | 创建[OH_VBucket](_o_h___v_bucket.md)实例。 |
138| [OH_Rdb_CreatePredicates](#oh_rdb_createpredicates) (const char \*table) | 创建[OH_Predicates](_o_h___predicates.md)实例。 |
139| [OH_Rdb_GetOrOpen](#oh_rdb_getoropen) (const [OH_Rdb_Config](_o_h___rdb___config.md) \*config, int \*errCode) | 获得一个相关的[OH_Rdb_Store](_o_h___rdb___store.md)实例,操作关系型数据库。 |
140| [OH_Rdb_CloseStore](#oh_rdb_closestore) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store) | 销毁[OH_Rdb_Store](_o_h___rdb___store.md)对象,并回收该对象占用的内存。 |
141| [OH_Rdb_DeleteStore](#oh_rdb_deletestore) (const [OH_Rdb_Config](_o_h___rdb___config.md) \*config) | 使用指定的数据库文件配置删除数据库。 |
142| [OH_Rdb_Insert](#oh_rdb_insert) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, const char \*table, [OH_VBucket](_o_h___v_bucket.md) \*valuesBucket) | 向目标表中插入一行数据。 |
143| [OH_Rdb_Update](#oh_rdb_update) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, [OH_VBucket](_o_h___v_bucket.md) \*valuesBucket, [OH_Predicates](_o_h___predicates.md) \*predicates) | 根据指定的条件更新数据库中的数据。 |
144| [OH_Rdb_Delete](#oh_rdb_delete) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, [OH_Predicates](_o_h___predicates.md) \*predicates) | 根据指定的条件删除数据库中的数据。 |
145| [OH_Rdb_Query](#oh_rdb_query) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, [OH_Predicates](_o_h___predicates.md) \*predicates, const char \*const \*columnNames, int length) | 根据指定条件查询数据库中的数据。 |
146| [OH_Rdb_Execute](#oh_rdb_execute) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, const char \*sql) | 执行无返回值的SQL语句。 |
147| [OH_Rdb_ExecuteQuery](#oh_rdb_executequery) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, const char \*sql) | 根据指定SQL语句查询数据库中的数据。 |
148| [OH_Rdb_BeginTransaction](#oh_rdb_begintransaction) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store) | 在开始执行SQL语句之前,开始事务。 |
149| [OH_Rdb_RollBack](#oh_rdb_rollback) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store) | 回滚已经执行的SQL语句。 |
150| [OH_Rdb_Commit](#oh_rdb_commit) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store) | 提交已执行的SQL语句。 |
151| [OH_Rdb_Backup](#oh_rdb_backup) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, const char \*databasePath) | 以指定路径备份数据库。 |
152| [OH_Rdb_Restore](#oh_rdb_restore) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, const char \*databasePath) | 从指定的数据库备份文件恢复数据库。 |
153| [OH_Rdb_GetVersion](#oh_rdb_getversion) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, int \*version) | 获取数据库版本。 |
154| [OH_Rdb_SetVersion](#oh_rdb_setversion) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, int version) | 设置数据库版本。 |
155| [OH_Rdb_SetDistributedTables](#oh_rdb_setdistributedtables) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, const char \*tables[], uint32_t count, [Rdb_DistributedType](#rdb_distributedtype) type, const [Rdb_DistributedConfig](_rdb___distributed_config.md) \*config) | 设置分布式数据库表。 |
156| [OH_Rdb_FindModifyTime](#oh_rdb_findmodifytime) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, const char \*tableName, const char \*columnName, [OH_VObject](_o_h___v_object.md) \*values) | 获取数据库表中数据的最后修改时间。 |
157| [OH_Rdb_Subscribe](#oh_rdb_subscribe) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, [Rdb_SubscribeType](#rdb_subscribetype) type, const [Rdb_DataObserver](_rdb___data_observer.md) \*observer) | 为数据库注册观察者。当分布式数据库中的数据发生更改时,将调用回调。 |
158| [OH_Rdb_Unsubscribe](#oh_rdb_unsubscribe) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, [Rdb_SubscribeType](#rdb_subscribetype) type, const [Rdb_DataObserver](_rdb___data_observer.md) \*observer) | 从数据库中删除指定类型的指定观察者。 |
159| [OH_Rdb_GetTableDetails](#oh_rdb_gettabledetails) ([Rdb_ProgressDetails](_rdb___progress_details.md) \*progress, int32_t version) | 从端云同步任务的统计信息中获取数据库表的统计信息。 |
160| [OH_Rdb_CloudSync](#oh_rdb_cloudsync) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, [Rdb_SyncMode](#rdb_syncmode) mode, const char \*tables, int count, const [Rdb_ProgressObserver](_rdb___progress_observer.md) \*observer) | 进行端云同步。 |
161| [OH_Rdb_SubscribeAutoSyncProgress](#oh_rdb_subscribeautosyncprogress) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, const [Rdb_ProgressObserver](_rdb___progress_observer.md) \*observer) | 订阅RDB存储的自动同步进度。 当收到自动同步进度的通知时,将调用回调。 |
162| [OH_Rdb_UnsubscribeAutoSyncProgress](#oh_rdb_unsubscribeautosyncprogress) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, const [Rdb_ProgressObserver](_rdb___progress_observer.md) \*observer) | 取消订阅RDB存储的自动同步进程。 |
163| int [OH_Rdb_LockRow](#oh_rdb_lockrow) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, [OH_Predicates](_o_h___predicates.md) \*predicates) | 根据指定的条件锁定数据库中的数据,锁定数据不执行端云同步。 |
164| int [OH_Rdb_UnlockRow](#oh_rdb_unlockrow) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, [OH_Predicates](_o_h___predicates.md) \*predicates) | 根据指定的条件锁解锁数据库中的数据。 |
165| [OH_Cursor](_o_h___cursor.md) \* [OH_Rdb_QueryLockedRow](#oh_rdb_querylockedrow) ([OH_Rdb_Store](_o_h___rdb___store.md) \*store, [OH_Predicates](_o_h___predicates.md) \*predicates, const char \*const \*columnNames, int length) | 根据指定条件查询数据库中锁定的数据。 |
166
167### 变量
168
169| 名称 | 描述 |
170| -------- | -------- |
171| [OH_Cursor::id](#id-15) | OH_Cursor结构体的唯一标识符。 |
172| [OH_Cursor::getColumnCount](#getcolumncount) | 函数指针,获取结果集中的列数。 |
173| [OH_Cursor::getColumnType](#getcolumntype) | 函数指针,根据指定的列索引获取列类型。 |
174| [OH_Cursor::getColumnIndex](#getcolumnindex) | 函数指针,根据指定的列名获取列索引。 |
175| [OH_Cursor::getColumnName](#getcolumnname) | 函数指针,根据指定的列索引获取列名。 |
176| [OH_Cursor::getRowCount](#getrowcount) | 函数指针,获取结果集中的行数。 |
177| [OH_Cursor::goToNextRow](#gotonextrow) | 函数指针,转到结果集的下一行。 |
178| [OH_Cursor::getSize](#getsize) | 函数指针,当结果集中列的数据类型是BLOB或者TEXT时,获取其值所需的内存。 |
179| [OH_Cursor::getText](#gettext) | 函数指针,以字符串形式获取当前行中指定列的值。 |
180| [OH_Cursor::getInt64](#getint64) | 函数指针,以int64_t形式获取当前行中指定列的值。 |
181| [OH_Cursor::getReal](#getreal) | 函数指针,以double形式获取当前行中指定列的值。 |
182| [OH_Cursor::getBlob](#getblob) | 函数指针,以字节数组的形式获取当前行中指定列的值。 |
183| [OH_Cursor::isNull](#isnull-12) | 函数指针,检查当前行中指定列的值是否为null。 |
184| [OH_Cursor::destroy](#destroy-14) | 函数指针,关闭结果集。 |
185| [OH_Cursor::getAsset](#getasset) | 函数指针,以资产的形式获取当前行中指定列的值。 |
186| [OH_Cursor::getAssets](#getassets) | 函数指针,以资产数组的形式获取当前行中指定列的值。 |
187| [OH_Predicates::id](#id-25) | OH_Predicates结构体的唯一标识符。 |
188| [OH_Predicates::equalTo](#equalto) | 函数指针,配置谓词以匹配数据字段等于指定值的字段。 |
189| [OH_Predicates::notEqualTo](#notequalto) | 函数指针,配置谓词以匹配数据字段不等于指定值的字段。 |
190| [OH_Predicates::beginWrap](#beginwrap) | 函数指针,向谓词添加左括号。 |
191| [OH_Predicates::endWrap](#endwrap) | 函数指针,向谓词添加右括号。 |
192| [OH_Predicates::orOperate](#oroperate) | 函数指针,将或条件添加到谓词中。 |
193| [OH_Predicates::andOperate](#andoperate) | 函数指针,向谓词添加和条件。 |
194| [OH_Predicates::isNull](#isnull-22) | 函数指针,配置谓词以匹配值为null的字段。 |
195| [OH_Predicates::isNotNull](#isnotnull) | 函数指针,配置谓词以匹配值不为null的指定字段。 |
196| [OH_Predicates::like](#like) | 函数指针,配置谓词以匹配数据字段为field且值类似于指定字符串的字段。 |
197| [OH_Predicates::between](#between) | 函数指针,将谓词配置为匹配数据字段为field且其值在给定范围内的指定字段。 |
198| [OH_Predicates::notBetween](#notbetween) | 函数指针,将谓词配置为匹配数据字段为field且其值超出给定范围内的指定字段。 |
199| [OH_Predicates::greaterThan](#greaterthan) | 函数指针,配置谓词以匹配数据字段为field且值大于指定值valueObject的字段。 |
200| [OH_Predicates::lessThan](#lessthan) | 函数指针,配置谓词以匹配数据字段为field且值小于指定值valueObject的字段 |
201| [OH_Predicates::greaterThanOrEqualTo](#greaterthanorequalto) | 函数指针,配置谓词以匹配数据字段为field且值大于或等于指定值valueObject的字段 |
202| [OH_Predicates::lessThanOrEqualTo](#lessthanorequalto) | 函数指针,配置谓词以匹配数据字段为field且值小于或等于指定值valueObject的字段 |
203| [OH_Predicates::orderBy](#orderby) | 函数指针,配置谓词以匹配其值按升序或降序排序的列。 |
204| [OH_Predicates::distinct](#distinct) | 函数指针,配置谓词以过滤重复记录并仅保留其中一个。 |
205| [OH_Predicates::limit](#limit) | 函数指针,设置最大数据记录数的谓词。 |
206| [OH_Predicates::offset](#offset) | 函数指针,配置谓词以指定返回结果的起始位置。 |
207| [OH_Predicates::groupBy](#groupby) | 函数指针,配置R谓词按指定列分组查询结果。 |
208| [OH_Predicates::in](#in) | 函数指针,配置谓词以匹配数据字段为field且值在给定范围内的指定字段。 |
209| [OH_Predicates::notIn](#notin) | 函数指针,配置谓词以匹配数据字段为field且值超出给定范围内的指定字段。 |
210| [OH_Predicates::clear](#clear-12) | 函数指针,清空谓词。 |
211| [OH_Predicates::destroy](#destroy-24) | 销毁[OH_Predicates](_o_h___predicates.md)对象,并回收该对象占用的内存。 |
212| [OH_VObject::id](#id-35) | OH_VObject结构体的唯一标识符。 |
213| [OH_VObject::putInt64](#putint64-22) | 将int64类型的单个参数或者数组转换为[OH_VObject](_o_h___v_object.md)类型的值。 |
214| [OH_VObject::putDouble](#putdouble) | 将double类型的单个参数或者数组转换为[OH_VObject](_o_h___v_object.md)类型的值。 |
215| [OH_VObject::putText](#puttext-22) | 将char \*类型的字符数组转换为[OH_VObject](_o_h___v_object.md)类型的值。 |
216| [OH_VObject::putTexts](#puttexts) | 将char \*类型的字符串数组转换为[OH_VObject](_o_h___v_object.md)类型的值。 |
217| [OH_VObject::destroy](#destroy-44) | 销毁[OH_VObject](_o_h___v_object.md)对象,并回收该对象占用的内存。 |
218| [OH_VBucket::id](#id-45) | OH_VBucket结构体的唯一标识符。 |
219| [OH_VBucket::capability](#capability) | 表示结构体的存储键值对的数量 |
220| [OH_VBucket::putText](#puttext-12) | 将char\*值放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。 |
221| [OH_VBucket::putInt64](#putint64-12) | 将int64_t值放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。 |
222| [OH_VBucket::putReal](#putreal) | 将double值放入给定列名的{**OH_VBucket}对象中。** |
223| [OH_VBucket::putBlob](#putblob) | 将const uint8_t \*值放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。 |
224| [OH_VBucket::putNull](#putnull) | 将NULL值放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。 |
225| [OH_VBucket::clear](#clear-22) | 清空[OH_VBucket](_o_h___v_bucket.md)对象。 |
226| [OH_VBucket::destroy](#destroy-34) | 销毁[OH_VBucket](_o_h___v_bucket.md)对象,并回收该对象占用的内存。 |
227| [OH_Rdb_Config::selfSize](#selfsize) | 该结构体的大小。 |
228| [OH_Rdb_Config::dataBaseDir](#databasedir) | 数据库文件路径。 |
229| [OH_Rdb_Config::storeName](#storename) | 数据库名称。 |
230| [OH_Rdb_Config::bundleName](#bundlename) | 应用包名。 |
231| [OH_Rdb_Config::moduleName](#modulename) | 应用模块名。 |
232| [OH_Rdb_Config::isEncrypt](#isencrypt) | 指定数据库是否加密。 |
233| [OH_Rdb_Config::securityLevel](#securitylevel) | 设置数据库安全级别[OH_Rdb_SecurityLevel](#oh_rdb_securitylevel)。 |
234| [OH_Rdb_Config::area](#area) | 设置数据库安全区域等级[Rdb_SecurityArea](#rdb_securityarea)。 |
235| [OH_Rdb_Store::id](#id-55) | OH_Rdb_Store结构体的唯一标识符。 |
236| [Rdb_DistributedConfig::version](#version-13) | 用于唯一标识Rdb_DistributedConfig结构的版本。 |
237| [Rdb_DistributedConfig::isAutoSync](#isautosync) | 表示该表是否支持自动同步。 |
238| [Rdb_KeyInfo::count](#count) | 表示发生变化的主键或者行号的数量。 |
239| [Rdb_KeyInfo::type](#type) | 表示主键的类型[OH_ColumnType](#oh_columntype)。 |
240| [Rdb_KeyInfo::Rdb_KeyData::integer](#integer) | 存放uint64_t类型的数据。 |
241| [Rdb_KeyInfo::Rdb_KeyData::real](#real) | 存放double类型的数据。 |
242| [Rdb_KeyInfo::Rdb_KeyData::text](#text) | 存放char \*类型的数据。 |
243| [Rdb_KeyInfo::data](_rdb___key_info.md#成员变量) | 存放变化的具体数据。 |
244| [Rdb_ChangeInfo::version](#version-23) | 用于唯一标识Rdb_DistributedConfig结构的版本。 |
245| [Rdb_ChangeInfo::tableName](#tablename) | 表示发生变化的表的名称。 |
246| [Rdb_ChangeInfo::ChangeType](#changetype) | 表示发生变化的数据的类型,数据或者资产附件发生变化。 |
247| [Rdb_ChangeInfo::inserted](#inserted) | 记录插入数据的位置,如果该表的主键是string类型,该值是主键的值,否则该值表示插入数据的行号。 |
248| [Rdb_ChangeInfo::updated](#updated) | 记录更新数据的位置,如果该表的主键是string类型,该值是主键的值,否则该值表示更新数据的行号。 |
249| [Rdb_ChangeInfo::deleted](#deleted) | 记录删除数据的位置,如果该表的主键是string类型,该值是主键的值,否则该值表示删除数据的行号。 |
250| [Rdb_SubscribeCallback::detailsObserver](#detailsobserver) | 端云数据更改事件的细节的回调函数。 |
251| [Rdb_SubscribeCallback::briefObserver](#briefobserver) | 端云数据更改事件的回调函数。 |
252| [Rdb_DataObserver::context](#context-12) | 表示数据观察者的上下文。 |
253| [Rdb_DataObserver::callback](#callback-12) | 数据观察者的回调。 |
254| [Rdb_Statistic::total](#total) | 表示数据库表中需要端云同步的总行数。 |
255| [Rdb_Statistic::successful](#successful) | 表示数据库表中端云同步成功的行数。 |
256| [Rdb_Statistic::failed](#failed) | 表示数据库表中端云同步失败的行数。 |
257| [Rdb_Statistic::remained](#remained) | 表示数据库表中端云同步剩余未执行的行数。 |
258| [Rdb_TableDetails::table](#table) | 数据库表名。 |
259| [Rdb_TableDetails::upload](#upload) | 表示数据库表中端云同步上传过程的统计信息。 |
260| [Rdb_TableDetails::download](#download) | 表示数据库表中端云同步下载过程的统计信息。 |
261| [Rdb_ProgressDetails::version](#version-33) | 用于唯一标识OH_TableDetails结构的版本。 |
262| [Rdb_ProgressDetails::schedule](#schedule) | 表示端云同步过程。 |
263| [Rdb_ProgressDetails::code](#code) | 表示端云同步过程的状态。 |
264| [Rdb_ProgressDetails::tableLength](#tablelength) | 表示端云同步的表的数量 |
265| [Rdb_ProgressObserver::context](#context-22) | 端云同步进度观察者的上下文。 |
266| [Rdb_ProgressObserver::callback](#callback-22) | 端云同步进度观察者的回调函数。 |
267
268
269## 宏定义说明
270
271
272### DISTRIBUTED_CHANGE_INFO_VERSION
273
274```
275#define DISTRIBUTED_CHANGE_INFO_VERSION   1
276```
277
278**描述**
279
280描述[Rdb_ChangeInfo](_rdb___change_info.md)的版本。
281
282**起始版本:** 11
283
284
285### DISTRIBUTED_CONFIG_VERSION
286
287```
288#define DISTRIBUTED_CONFIG_VERSION   1
289```
290
291**描述**
292
293描述[Rdb_DistributedConfig](_rdb___distributed_config.md)的版本。
294
295**起始版本:** 11
296
297
298### DISTRIBUTED_PROGRESS_DETAIL_VERSION
299
300```
301#define DISTRIBUTED_PROGRESS_DETAIL_VERSION   1
302```
303
304**描述**
305
306描述**OH_ProgressDetails**的版本。
307
308**起始版本:** 11
309
310
311## 类型定义说明
312
313
314### OH_Rdb_ConfigV2
315
316```
317typedef struct OH_Rdb_ConfigV2 OH_Rdb_ConfigV2
318```
319
320**描述**
321
322管理关系数据库配置,与[OH_Rdb_Config](_o_h___rdb___config.md)的区别是该结构体成员变量不对外暴露,使用一系列方法配置该结构体的属性。
323
324**起始版本:** 14
325
326
327### Rdb_DBType
328
329```
330typedef enum Rdb_DBType Rdb_DBType
331```
332
333**描述**
334
335描述数据库的内核类型。
336
337**起始版本:** 14
338
339### OH_ColumnType
340
341```
342typedef enum OH_ColumnType OH_ColumnType
343```
344
345**描述**
346
347数据库字段类型.
348
349**起始版本:** 10
350
351
352### OH_Cursor
353
354```
355typedef struct OH_Cursor OH_Cursor
356```
357
358**描述**
359
360表示结果集。
361
362提供通过查询数据库生成的数据库结果集的访问方法。
363
364**起始版本:** 10
365
366
367### OH_OrderType
368
369```
370typedef enum OH_OrderType OH_OrderType
371```
372
373**描述**
374
375排序方式。
376
377**起始版本:** 10
378
379
380### OH_Predicates
381
382```
383typedef struct OH_Predicates OH_Predicates
384```
385
386**描述**
387
388表示谓词。
389
390**起始版本:** 10
391
392
393### OH_Rdb_ErrCode
394
395```
396typedef enum OH_Rdb_ErrCode OH_Rdb_ErrCode
397```
398
399**描述**
400
401表示错误码信息。
402
403**起始版本:** 10
404
405
406### OH_Rdb_SecurityLevel
407
408```
409typedef enum OH_Rdb_SecurityLevel OH_Rdb_SecurityLevel
410```
411
412**描述**
413
414数据库的安全级别枚举。
415
416**起始版本:** 10
417
418
419### OH_VBucket
420
421```
422typedef struct OH_VBucket OH_VBucket
423```
424
425**描述**
426
427用于存储键值对的类型。
428
429**起始版本:** 10
430
431
432### OH_VObject
433
434```
435typedef struct OH_VObject OH_VObject
436```
437
438**描述**
439
440表示允许的数据字段类型。
441
442**起始版本:** 10
443
444
445### Rdb_BriefObserver
446
447```
448typedef void(* Rdb_BriefObserver) (void *context, const char *values[], uint32_t count)
449```
450
451**描述**
452
453端云数据更改事件的回调函数。
454
455**起始版本:** 11
456
457**参数:**
458
459| 名称 | 描述 |
460| -------- | -------- |
461| context | 表示数据观察者的上下文。 |
462| values | 表示更改的端云账号。 |
463| count | 表示更改的端云账号数量。 |
464
465
466### Rdb_ChangeInfo
467
468```
469typedef struct Rdb_ChangeInfo Rdb_ChangeInfo
470```
471
472**描述**
473
474记录端云同步过程详情。
475
476**起始版本:** 11
477
478
479### Rdb_ChangeType
480
481```
482typedef enum Rdb_ChangeType Rdb_ChangeType
483```
484
485**描述**
486
487描述数据变更类型。
488
489**起始版本:** 11
490
491
492### Rdb_DataObserver
493
494```
495typedef struct Rdb_DataObserver Rdb_DataObserver
496```
497
498**描述**
499
500表示数据观察者。
501
502**起始版本:** 11
503
504
505### Rdb_DetailsObserver
506
507```
508typedef void(* Rdb_DetailsObserver) (void *context, const Rdb_ChangeInfo **changeInfo, uint32_t count)
509```
510
511**描述**
512
513端云数据更改事件的细节的回调函数。
514
515**起始版本:** 11
516
517**参数:**
518
519| 名称 | 描述 |
520| -------- | -------- |
521| context | 表示数据观察者的上下文。 |
522| changeInfo | 表示已更改表的信息[Rdb_ChangeInfo](_rdb___change_info.md)。 |
523| count | 表示更改的表的数量。 |
524
525**参见:**
526
527[Rdb_ChangeInfo](_rdb___change_info.md).
528
529
530### Rdb_DistributedConfig
531
532```
533typedef struct Rdb_DistributedConfig Rdb_DistributedConfig
534```
535
536**描述**
537
538记录表的分布式配置信息。
539
540**起始版本:** 11
541
542
543### Rdb_DistributedType
544
545```
546typedef enum Rdb_DistributedType Rdb_DistributedType
547```
548
549**描述**
550
551描述表的分布式类型的枚举。
552
553**起始版本:** 11
554
555
556### Rdb_KeyInfo
557
558```
559typedef struct Rdb_KeyInfo Rdb_KeyInfo
560```
561
562**描述**
563
564描述发生变化的行的主键或者行号。
565
566**起始版本:** 11
567
568
569### Rdb_Progress
570
571```
572typedef enum Rdb_Progress Rdb_Progress
573```
574
575**描述**
576
577描述端云同步过程。
578
579**起始版本:** 11
580
581
582### Rdb_ProgressCallback
583
584```
585typedef void(* Rdb_ProgressCallback) (void *context, Rdb_ProgressDetails *progressDetails)
586```
587
588**描述**
589
590端云同步进度的回调函数。
591
592**起始版本:** 11
593
594**参数:**
595
596| 名称 | 描述 |
597| -------- | -------- |
598| progressDetails | 端云同步进度的详细信息。 |
599
600**参见:**
601
602[Rdb_ProgressDetails](_rdb___progress_details.md).
603
604
605### Rdb_ProgressCode
606
607```
608typedef enum Rdb_ProgressCode Rdb_ProgressCode
609```
610
611**描述**
612
613表示端云同步过程的状态。
614
615**起始版本:** 11
616
617
618### Rdb_ProgressDetails
619
620```
621typedef struct Rdb_ProgressDetails Rdb_ProgressDetails
622```
623
624**描述**
625
626描述数据库整体执行端云同步任务上传和下载的统计信息。
627
628**起始版本:** 11
629
630
631### Rdb_ProgressObserver
632
633```
634typedef struct Rdb_ProgressObserver Rdb_ProgressObserver
635```
636
637**描述**
638
639端云同步进度观察者。
640
641**起始版本:** 11
642
643
644### Rdb_SecurityArea
645
646```
647typedef enum Rdb_SecurityArea Rdb_SecurityArea
648```
649
650**描述**
651
652描述数据库的安全区域等级。
653
654**起始版本:** 11
655
656
657### Rdb_Statistic
658
659```
660typedef struct Rdb_Statistic Rdb_Statistic
661```
662
663**描述**
664
665描述数据库表的端云同步过程的统计信息。
666
667**起始版本:** 11
668
669
670### Rdb_SubscribeCallback
671
672```
673typedef union Rdb_SubscribeCallback Rdb_SubscribeCallback
674```
675
676**描述**
677
678表示回调函数。
679
680**起始版本:** 11
681
682
683### Rdb_SubscribeType
684
685```
686typedef enum Rdb_SubscribeType Rdb_SubscribeType
687```
688
689**描述**
690
691描述订阅类型。
692
693**起始版本:** 11
694
695
696### Rdb_SyncCallback
697
698```
699typedef void(* Rdb_SyncCallback) (Rdb_ProgressDetails *progressDetails)
700```
701
702**描述**
703
704数据库端云同步的回调函数。
705
706**起始版本:** 11
707
708**参数:**
709
710| 名称 | 描述 |
711| -------- | -------- |
712| progressDetails | 数据库端云同步的统计信息。 |
713
714**参见:**
715
716[OH_Rdb_Store](_o_h___rdb___store.md).
717
718
719### Rdb_SyncMode
720
721```
722typedef enum Rdb_SyncMode Rdb_SyncMode
723```
724
725**描述**
726
727表示数据库的同步模式
728
729**起始版本:** 11
730
731
732### Rdb_TableDetails
733
734```
735typedef struct Rdb_TableDetails Rdb_TableDetails
736```
737
738**描述**
739
740描述数据库表执行端云同步任务上传和下载的统计信息。
741
742**起始版本:** 11
743
744## 枚举类型说明
745
746
747### Rdb_DBType
748
749```
750enum Rdb_DBType
751```
752
753**描述**
754
755描述数据库的内核类型。
756
757**起始版本:** 14
758
759| 枚举值 | 描述 |
760| -------- | -------- |
761| RDB_SQLITE | 表示使用sqlite作为数据库内核。 |
762| RDB_CAYLEY | 表示使用凯莱数据库作为数据库内核。 |
763| DBTYPE_BUTT | 表示内核类型枚举值允许取值的最大值,这是一个非法值。 |
764
765### OH_ColumnType
766
767```
768enum OH_ColumnType
769```
770
771**描述**
772
773数据库字段类型。
774
775**起始版本:** 10
776
777| 枚举值 | 描述 |
778| -------- | -------- |
779| TYPE_NULL | 表示NULL类型 |
780| TYPE_INT64 | 表示INT64数据类型 |
781| TYPE_REAL | 表示REAL数据类型 |
782| TYPE_TEXT | 表示TEXT数据类型 |
783| TYPE_BLOB | 表示BLOB数据类型 |
784| TYPE_ASSET<sup>11+</sup> | 表示ASSET(资产附件)数据类型<br/>从API version 11开始支持此枚举。 |
785| TYPE_ASSETS<sup>11+</sup> | ASSETS(多个资产附件)数据类型<br/>从API version 11开始支持此枚举。 |
786
787
788### OH_OrderType
789
790```
791enum OH_OrderType
792```
793
794**描述**
795
796排序方式。
797
798**起始版本:** 10
799
800| 枚举值 | 描述 |
801| -------- | -------- |
802| ASC | 升序排列。 |
803| DESC | 降序排列。 |
804
805
806### OH_Rdb_ErrCode
807
808```
809enum OH_Rdb_ErrCode
810```
811
812**描述**
813
814表示错误码信息。
815
816**起始版本:** 10
817
818| 枚举值 | 描述 |
819| -------- | -------- |
820| RDB_ERR | 执行出错。 |
821| RDB_OK | 执行成功。 |
822| E_BASE | 异常错误代码的基础。 |
823| RDB_E_NOT_SUPPORTED | RDB不具备该能力。 |
824| RDB_E_ERROR | 常见异常的错误代码。 |
825| RDB_E_INVALID_ARGS | 参数非法。 |
826| RDB_E_CANNOT_UPDATE_READONLY | 更新只读数据库。 |
827| RDB_E_REMOVE_FILE | 删除文件失败。 |
828| RDB_E_EMPTY_TABLE_NAME | 表名为空。 |
829| RDB_E_EMPTY_VALUES_BUCKET | 键值对内容为空。 |
830| RDB_E_EXECUTE_IN_STEP_QUERY | 查询时执行的SQL语句错误。 |
831| RDB_E_INVALID_COLUMN_INDEX | 列索引非法. |
832| RDB_E_INVALID_COLUMN_TYPE | 列类型非法. |
833| RDB_E_EMPTY_FILE_NAME | 文件名称为空。 |
834| RDB_E_INVALID_FILE_PATH | 文件路径非法。 |
835| RDB_E_TRANSACTION_IN_EXECUTE | 开启事务执行出错, |
836| RDB_E_INVALID_STATEMENT | SQL语句预编译出错. |
837| RDB_E_EXECUTE_WRITE_IN_READ_CONNECTION | 在读连接中执行写操作。 |
838| RDB_E_BEGIN_TRANSACTION_IN_READ_CONNECTION | 在读连接中开启事务。 |
839| RDB_E_NO_TRANSACTION_IN_SESSION | 在数据库会话中不存在开启的事务. |
840| RDB_E_MORE_STEP_QUERY_IN_ONE_SESSION | 在一个数据库会话中执行多次查询。 |
841| RDB_E_NO_ROW_IN_QUERY | 查询得到的结果集不存在任何记录。 |
842| RDB_E_INVALID_BIND_ARGS_COUNT | SQL语句中绑定的参数个数非法。 |
843| RDB_E_INVALID_OBJECT_TYPE | 对象类型非法。 |
844| RDB_E_INVALID_CONFLICT_FLAG | 冲突解决类型非法。 |
845| RDB_E_HAVING_CLAUSE_NOT_IN_GROUP_BY | HAVING关键字只能用于GROUP BY之后. |
846| RDB_E_NOT_SUPPORTED_BY_STEP_RESULT_SET | 不支持step形式数据库结果集。 |
847| RDB_E_STEP_RESULT_SET_CROSS_THREADS | 结果集查询出错。 |
848| RDB_E_STEP_RESULT_QUERY_NOT_EXECUTED | 结果集查询语句未被执行。 |
849| RDB_E_STEP_RESULT_IS_AFTER_LAST | 结果集的游标已经处于最后一行。 |
850| RDB_E_STEP_RESULT_QUERY_EXCEEDED | 结果集查询次数已经超过上限。 |
851| RDB_E_STATEMENT_NOT_PREPARED | SQL语句未被预编译。 |
852| RDB_E_EXECUTE_RESULT_INCORRECT | 数据库执行结果异常. |
853| RDB_E_STEP_RESULT_CLOSED | 结果集已经关闭。 |
854| RDB_E_RELATIVE_PATH | 相对路径。 |
855| RDB_E_EMPTY_NEW_ENCRYPT_KEY | 新的密钥文件为空。 |
856| RDB_E_CHANGE_UNENCRYPTED_TO_ENCRYPTED | 将非加密的数据库更改为加密数据库。 |
857| RDB_E_CHANGE_ENCRYPT_KEY_IN_BUSY | 在数据库繁忙时更新数据库密钥。 |
858| RDB_E_STEP_STATEMENT_NOT_INIT | 预编译的SQL语句未被初始化。 |
859| RDB_E_NOT_SUPPORTED_ATTACH_IN_WAL_MODE | 在WAL日志模式下不支持ATTACH操作。 |
860| RDB_E_CREATE_FOLDER_FAIL | 创建文件夹失败。 |
861| RDB_E_SQLITE_SQL_BUILDER_NORMALIZE_FAIL | SQL语句构建失败。 |
862| RDB_E_STORE_SESSION_NOT_GIVE_CONNECTION_TEMPORARILY | 数据库会话暂未提供连接。 |
863| RDB_E_STORE_SESSION_NO_CURRENT_TRANSACTION | 数据库会话不具有当前的事务。 |
864| RDB_E_NOT_SUPPORT | 不支持当前操作。 |
865| RDB_E_INVALID_PARCEL | 当前PARCEL非法。 |
866| RDB_E_QUERY_IN_EXECUTE | 执行query查询出错。 |
867| RDB_E_SET_PERSIST_WAL | 设置WAL模式下数据库文件的持久化时出错。 |
868| RDB_E_DB_NOT_EXIST | 数据库不存在。 |
869| RDB_E_ARGS_READ_CON_OVERLOAD | 设置的读连接数大于上限。 |
870| RDB_E_WAL_SIZE_OVER_LIMIT | WAL日志文件大小超过默认值。 |
871| RDB_E_CON_OVER_LIMIT | 数据库连接数已用完。 |
872
873
874### OH_Rdb_SecurityLevel
875
876```
877enum OH_Rdb_SecurityLevel
878```
879
880**描述**
881
882数据库的安全级别枚举。
883
884**起始版本:** 10
885
886| 枚举值 | 描述 |
887| -------- | -------- |
888| S1 | S1: 表示数据库的安全级别为低级别。<br/>当数据泄露时会产生较低影响。 |
889| S2 | S2: 表示数据库的安全级别为中级别。<br/>当数据泄露时会产生较大影响。 |
890| S3 | S3: 表示数据库的安全级别为高级别。<br/>当数据泄露时会产生重大影响。 |
891| S4 | S4: 表示数据库的安全级别为关键级别。<br/>当数据泄露时会产生严重影响。 |
892
893
894### Rdb_ChangeType
895
896```
897enum Rdb_ChangeType
898```
899
900**描述**
901
902描述数据变更类型。
903
904**起始版本:** 11
905
906| 枚举值 | 描述 |
907| -------- | -------- |
908| RDB_DATA_CHANGE | 表示是数据发生变更。 |
909| RDB_ASSET_CHANGE | 表示是资产附件发生了变更。 |
910
911
912### Rdb_DistributedType
913
914```
915enum Rdb_DistributedType
916```
917
918**描述**
919
920描述表的分布式类型的枚举。
921
922**起始版本:** 11
923
924| 枚举值 | 描述 |
925| -------- | -------- |
926| RDB_DISTRIBUTED_CLOUD | 表示在设备和云端之间分布式的数据库表。 |
927
928
929### Rdb_Progress
930
931```
932enum Rdb_Progress
933```
934
935**描述**
936
937描述端云同步过程。
938
939**起始版本:** 11
940
941| 枚举值 | 描述 |
942| -------- | -------- |
943| RDB_SYNC_BEGIN | 表示端云同步过程开始。 |
944| RDB_SYNC_IN_PROGRESS | 表示正在端云同步过程中。 |
945| RDB_SYNC_FINISH | 表示端云同步过程已完成。 |
946
947
948### Rdb_ProgressCode
949
950```
951enum Rdb_ProgressCode
952```
953
954**描述**
955
956表示端云同步过程的状态。
957
958**起始版本:** 11
959
960| 枚举值 | 描述 |
961| -------- | -------- |
962| RDB_SUCCESS | 表示端云同步过程成功。 |
963| RDB_UNKNOWN_ERROR | 表示端云同步过程遇到未知错误。 |
964| RDB_NETWORK_ERROR | 表示端云同步过程遇到网络错误。 |
965| RDB_CLOUD_DISABLED | 表示云端不可用。 |
966| RDB_LOCKED_BY_OTHERS | 表示有其他设备正在端云同步,本设备无法进行端云同步。 |
967| RDB_RECORD_LIMIT_EXCEEDED | 表示本次端云同步需要同步的条目或大小超出最大值。由云端配置最大值。 |
968| RDB_NO_SPACE_FOR_ASSET | 表示云空间剩余空间小于待同步的资产大小。 |
969
970
971### Rdb_SecurityArea
972
973```
974enum Rdb_SecurityArea
975```
976
977**描述**
978
979描述数据库的安全区域等级。
980
981**起始版本:** 11
982
983| 枚举值 | 描述 |
984| -------- | -------- |
985| RDB_SECURITY_AREA_EL1 | 安全区域等级为1。 |
986| RDB_SECURITY_AREA_EL2 | 安全区域等级为2。 |
987| RDB_SECURITY_AREA_EL3 | 安全区域等级为3。 |
988| RDB_SECURITY_AREA_EL4 | 安全区域等级为4。 |
989
990
991### Rdb_SubscribeType
992
993```
994enum Rdb_SubscribeType
995```
996
997**描述**
998
999描述订阅类型。
1000
1001**起始版本:** 11
1002
1003| 枚举值 | 描述 |
1004| -------- | -------- |
1005| RDB_SUBSCRIBE_TYPE_CLOUD | 订阅云端数据更改。 |
1006| RDB_SUBSCRIBE_TYPE_CLOUD_DETAILS | 订阅云端数据更改详情。 |
1007| RDB_SUBSCRIBE_TYPE_LOCAL_DETAILS<sup>12+</sup>  | 订阅本地数据更改详情。从API version 12开始支持此枚举。 |
1008
1009
1010### Rdb_SyncMode
1011
1012```
1013enum Rdb_SyncMode
1014```
1015
1016**描述**
1017
1018表示数据库的同步模式
1019
1020**起始版本:** 11
1021
1022| 枚举值 | 描述 |
1023| -------- | -------- |
1024| RDB_SYNC_MODE_TIME_FIRST | 表示数据从修改时间较近的一端同步到修改时间较远的一端。 |
1025| RDB_SYNC_MODE_NATIVE_FIRST | 表示数据从本地设备同步到云端。 |
1026| RDB_SYNC_MODE_CLOUD_FIRST | 表示数据从云端同步到本地设备。 |
1027
1028
1029## 函数说明
1030
1031
1032### OH_Rdb_CreateOrOpen()
1033
1034```
1035OH_Rdb_Store *OH_Rdb_CreateOrOpen (const OH_Rdb_ConfigV2 *config, int *errCode )
1036```
1037
1038**描述**
1039
1040使用指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2), 获得一个对应的[OH_Rdb_Store](_o_h___rdb___store.md)实例,用来操作关系型数据库。
1041
1042**起始版本:** 14
1043
1044**参数:**
1045
1046| 名称 | 描述 |
1047| -------- | -------- |
1048| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1049| errCode | 表示函数执行状态, 作为出参使用。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。 |
1050
1051**返回:**
1052
1053创建成功则返回一个指向[OH_Rdb_Store](_o_h___rdb___store.md)结构体实例的指针,否则返回NULL。
1054
1055**参见:**
1056
1057[OH_Rdb_ConfigV2](#oh_rdb_configv2), [OH_Rdb_Store](_o_h___rdb___store.md).
1058
1059
1060### OH_Rdb_BeginTransWithTrxId()
1061
1062```
1063int OH_Rdb_BeginTransWithTrxId (OH_Rdb_Store *store, int64_t *trxId )
1064```
1065
1066**描述**
1067
1068在开始执行SQL语句之前,开始事务, 并获得该事务的ID。
1069
1070**起始版本:** 14
1071
1072**参数:**
1073
1074| 名称 | 描述 |
1075| -------- | -------- |
1076| store | 表示一个指向 [OH_Rdb_Store](_o_h___rdb___store.md) 实例的指针。 |
1077| trxId | 事务ID, 作为出参使用。 |
1078
1079**返回:**
1080
1081返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。 RDB_E_NOT_SUPPORTED 表示不支持当前操作。
1082
1083**参见:**
1084
1085[OH_Rdb_Store](_o_h___rdb___store.md).
1086
1087
1088### OH_Rdb_CommitByTrxId()
1089
1090```
1091int OH_Rdb_CommitByTrxId (OH_Rdb_Store *store, int64_t trxId )
1092```
1093
1094**描述**
1095
1096使用指定的事务ID, 提交已经执行的SQL语句。
1097
1098**起始版本:** 14
1099
1100**参数:**
1101
1102| 名称 | 描述 |
1103| -------- | -------- |
1104| store | 表示一个指向 [OH_Rdb_Store](_o_h___rdb___store.md) 实例的指针。 |
1105| trxId | 表示需要提交的事务的ID。 |
1106
1107**返回:**
1108
1109返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功. RDB_E_INVALID_ARGS 表示无效参数,可能情况如下: 传入参数为空指针。 当前事务ID不是调用[OH_Rdb_BeginTransWithTrxId](#oh_rdb_begintranswithtrxid)获得的。 当前事务ID已经调用[OH_Rdb_CommitByTrxId](#oh_rdb_commitbytrxid)提交。 当前事务ID已经调用[OH_Rdb_RollBackByTrxId](#oh_rdb_rollbackbytrxid)回滚。 RDB_E_NOT_SUPPORTED 表示不支持当前操作。
1110
1111**参见:**
1112
1113[OH_Rdb_Store](_o_h___rdb___store.md).
1114
1115
1116### OH_Rdb_CreateConfig()
1117
1118```
1119OH_Rdb_ConfigV2 *OH_Rdb_CreateConfig ()
1120```
1121
1122**描述**
1123
1124创建一个[OH_Rdb_ConfigV2](#oh_rdb_configv2)实例,并返回指向该实例的指针。
1125
1126**起始版本:** 14
1127
1128**返回:**
1129
1130返回一个指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)实例的指针。
1131
1132**参见:**
1133
1134[OH_Rdb_ConfigV2](#oh_rdb_configv2)
1135
1136
1137
1138### OH_Rdb_DeleteStoreV2()
1139
1140```
1141int OH_Rdb_DeleteStoreV2 (const OH_Rdb_ConfigV2 *config)
1142```
1143
1144**描述**
1145
1146使用指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2)删除数据库。当使用向量数据库时,在调用接口前,应当确保向量数据库已经被正确关闭。
1147
1148**起始版本:** 14
1149
1150**参数:**
1151
1152| 名称 | 描述 |
1153| -------- | -------- |
1154| config | 表示数据库的配置。 |
1155
1156**返回:**
1157
1158返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1159
1160**参见:**
1161
1162OH_Rdb_ErrCode.
1163
1164
1165### OH_Rdb_DestroyConfig()
1166
1167```
1168int OH_Rdb_DestroyConfig (OH_Rdb_ConfigV2 *config)
1169```
1170
1171**描述**
1172
1173销毁由[OH_Rdb_CreateConfig](#oh_rdb_createconfig)创建的[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象。
1174
1175**起始版本:** 14
1176
1177**参数:**
1178
1179| 名称 | 描述 |
1180| -------- | -------- |
1181| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1182
1183**返回:**
1184
1185返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1186
1187
1188### OH_Rdb_ExecuteByTrxId()
1189
1190```
1191int OH_Rdb_ExecuteByTrxId (OH_Rdb_Store *store, int64_t trxId, const char *sql )
1192```
1193
1194**描述**
1195
1196使用指定的事务ID执行无返回值的SQL语句。
1197
1198**起始版本:** 14
1199
1200**参数:**
1201
1202| 名称 | 描述 |
1203| -------- | -------- |
1204| store | 表示一个指向 [OH_Rdb_Store](_o_h___rdb___store.md) 实例的指针。 |
1205| trxId | 调用[OH_Rdb_BeginTransWithTrxId](#oh_rdb_begintranswithtrxid)获得的事务ID,当设置为0时,表示不启用事务。 |
1206| sql | 指定要执行的SQL语句。 |
1207
1208**返回:**
1209
1210返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数,可能情况如下: 传入参数为空指针。 当前事务ID不是调用[OH_Rdb_BeginTransWithTrxId](#oh_rdb_begintranswithtrxid)获得的。 当前事务ID已经调用[OH_Rdb_CommitByTrxId](#oh_rdb_commitbytrxid)提交。 当前事务ID已经调用[OH_Rdb_RollBackByTrxId](#oh_rdb_rollbackbytrxid)回滚。 当store或者sql为NULL时。 RDB_E_NOT_SUPPORTED 表示不支持当前操作。
1211
1212**参见:**
1213
1214[OH_Rdb_Store](_o_h___rdb___store.md).
1215
1216
1217### OH_Rdb_GetSupportedDbType()
1218
1219```
1220const int *OH_Rdb_GetSupportedDbType (int *typeCount)
1221```
1222
1223**描述**
1224
1225获得支持的数据库类型[Rdb_DBType](#rdb_dbtype)。
1226
1227**起始版本:** 14
1228
1229**参数:**
1230
1231| 名称 | 描述 |
1232| -------- | -------- |
1233| typeCount | 表示支持的数据库类型的数组的长度, 作为出参使用。 |
1234
1235**返回:**
1236
1237返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1238
1239
1240### OH_Rdb_RollBackByTrxId()
1241
1242```
1243int OH_Rdb_RollBackByTrxId (OH_Rdb_Store *store, int64_t trxId )
1244```
1245
1246**描述**
1247
1248使用指定的事务ID, 回滚已经执行的SQL语句。
1249
1250**起始版本:** 14
1251
1252**参数:**
1253
1254| 名称 | 描述 |
1255| -------- | -------- |
1256| store | 表示一个指向 [OH_Rdb_Store](_o_h___rdb___store.md) 实例的指针。 |
1257| trxId | 表示需要回滚的事务的ID。 |
1258
1259**返回:**
1260
1261返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数, 可能情况如下: 传入参数为空指针。 当前事务ID不是调用[OH_Rdb_BeginTransWithTrxId](#oh_rdb_begintranswithtrxid)获得的。 当前事务ID已经调用[OH_Rdb_CommitByTrxId](#oh_rdb_commitbytrxid)提交。 当前事务ID已经调用[OH_Rdb_RollBackByTrxId](#oh_rdb_rollbackbytrxid)回滚。 RDB_E_NOT_SUPPORTED 表示不支持当前操作。
1262
1263**参见:**
1264
1265[OH_Rdb_Store](_o_h___rdb___store.md).
1266
1267
1268### OH_Rdb_SetArea()
1269
1270```
1271int OH_Rdb_SetArea (OH_Rdb_ConfigV2 *config, int area )
1272```
1273
1274**描述**
1275
1276给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库安全区域等级[Rdb_SecurityArea](#rdb_securityarea)。
1277
1278**起始版本:** 14
1279
1280**参数:**
1281
1282| 名称 | 描述 |
1283| -------- | -------- |
1284| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1285| area | 表示数据库安全区域等级[Rdb_SecurityArea](#rdb_securityarea)。 |
1286
1287**返回:**
1288
1289返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1290
1291
1292### OH_Rdb_SetBundleName()
1293
1294```
1295int OH_Rdb_SetBundleName (OH_Rdb_ConfigV2 *config, const char *bundleName )
1296```
1297
1298**描述**
1299
1300给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置应用包名。
1301
1302**起始版本:** 14
1303
1304**参数:**
1305
1306| 名称 | 描述 |
1307| -------- | -------- |
1308| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1309| bundleName | 表示数据库应用包名。 |
1310
1311**返回:**
1312
1313返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1314
1315
1316### OH_Rdb_SetDatabaseDir()
1317
1318```
1319int OH_Rdb_SetDatabaseDir (OH_Rdb_ConfigV2 *config, const char *databaseDir )
1320```
1321
1322**描述**
1323
1324给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库文件路径。
1325
1326**起始版本:** 14
1327
1328**参数:**
1329
1330| 名称 | 描述 |
1331| -------- | -------- |
1332| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1333| dataBaseDir | 表示数据库文件路径。包含数据库名称在内的全路径长度不超过1024个字符。 |
1334
1335**返回:**
1336
1337返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1338
1339
1340### OH_Rdb_SetDbType()
1341
1342```
1343int OH_Rdb_SetDbType (OH_Rdb_ConfigV2 *config, int dbType )
1344```
1345
1346**描述**
1347
1348给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库类型[Rdb_DBType](#rdb_dbtype)。
1349
1350**起始版本:** 14
1351
1352**参数:**
1353
1354| 名称 | 描述 |
1355| -------- | -------- |
1356| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1357| dbType | 表示数据库的数据库类型 [Rdb_DBType](#rdb_dbtype)。 |
1358
1359**返回:**
1360
1361返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。 RDB_E_NOT_SUPPORTED 表示不支持当前操作。
1362
1363
1364### OH_Rdb_SetEncrypted()
1365
1366```
1367int OH_Rdb_SetEncrypted (OH_Rdb_ConfigV2 *config, bool isEncrypted )
1368```
1369
1370**描述**
1371
1372给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库是否加密。
1373
1374**起始版本:** 14
1375
1376**参数:**
1377
1378| 名称 | 描述 |
1379| -------- | -------- |
1380| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1381| isEncrypted | 表示数据库是否加密, true表示加密, false表示不加密。 |
1382
1383**返回:**
1384
1385返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1386
1387
1388### OH_Rdb_SetModuleName()
1389
1390```
1391int OH_Rdb_SetModuleName (OH_Rdb_ConfigV2 *config, const char *moduleName )
1392```
1393
1394**描述**
1395
1396给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置应用模块名。
1397
1398**起始版本:** 14
1399
1400**参数:**
1401
1402| 名称 | 描述 |
1403| -------- | -------- |
1404| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1405| moduleName | 表示数据库应用模块名。 |
1406
1407**返回:**
1408
1409返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1410
1411
1412### OH_Rdb_SetSecurityLevel()
1413
1414```
1415int OH_Rdb_SetSecurityLevel (OH_Rdb_ConfigV2 *config, int securityLevel )
1416```
1417
1418**描述**
1419
1420给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库安全级别[OH_Rdb_SecurityLevel](#oh_rdb_securitylevel)。
1421
1422**起始版本:** 14
1423
1424**参数:**
1425
1426| 名称 | 描述 |
1427| -------- | -------- |
1428| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1429| securityLevel | 表示数据库安全级别 [OH_Rdb_SecurityLevel](#oh_rdb_securitylevel)。 |
1430
1431**返回:**
1432
1433返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1434
1435
1436### OH_Rdb_SetStoreName()
1437
1438```
1439int OH_Rdb_SetStoreName (OH_Rdb_ConfigV2 *config, const char *storeName )
1440```
1441
1442**描述**
1443
1444给指定的数据库文件配置[OH_Rdb_ConfigV2](#oh_rdb_configv2),设置数据库名称。
1445
1446**起始版本:** 14
1447
1448**参数:**
1449
1450| 名称 | 描述 |
1451| -------- | -------- |
1452| config | 表示指向[OH_Rdb_ConfigV2](#oh_rdb_configv2)对象的指针,即与此RDB存储相关的数据库配置。 |
1453| storeName | 表示数据库名称。 |
1454
1455**返回:**
1456
1457返回操作是否成功,出错时返回对应的错误码。 RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1458
1459### OH_Rdb_Backup()
1460
1461```
1462int OH_Rdb_Backup (OH_Rdb_Store *store, const char *databasePath )
1463```
1464
1465**描述**
1466
1467以指定路径备份数据库。
1468
1469**起始版本:** 10
1470
1471**参数:**
1472
1473| 名称 | 描述 |
1474| -------- | -------- |
1475| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1476| databasePath | 指定数据库的备份文件路径。 |
1477
1478**返回:**
1479
1480返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1481
1482**参见:**
1483
1484[OH_Rdb_Store](_o_h___rdb___store.md).
1485
1486
1487### OH_Rdb_BeginTransaction()
1488
1489```
1490int OH_Rdb_BeginTransaction (OH_Rdb_Store *store)
1491```
1492
1493**描述**
1494
1495在开始执行SQL语句之前,开始事务。
1496
1497**起始版本:** 10
1498
1499**参数:**
1500
1501| 名称 | 描述 |
1502| -------- | -------- |
1503| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1504
1505**返回:**
1506
1507返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1508
1509**参见:**
1510
1511[OH_Rdb_Store](_o_h___rdb___store.md).
1512
1513
1514### OH_Rdb_CloseStore()
1515
1516```
1517int OH_Rdb_CloseStore (OH_Rdb_Store *store)
1518```
1519
1520**描述**
1521
1522销毁[OH_Rdb_Store](_o_h___rdb___store.md)对象,并回收该对象占用的内存。
1523
1524**起始版本:** 10
1525
1526**参数:**
1527
1528| 名称 | 描述 |
1529| -------- | -------- |
1530| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1531
1532**返回:**
1533
1534返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1535
1536**参见:**
1537
1538[OH_Rdb_Store](_o_h___rdb___store.md).
1539
1540
1541### OH_Rdb_CloudSync()
1542
1543```
1544int OH_Rdb_CloudSync (OH_Rdb_Store *store, Rdb_SyncMode mode, const char *tables, int count, const Rdb_ProgressObserver *observer )
1545```
1546
1547**描述**
1548
1549进行端云同步。
1550
1551**起始版本:** 11
1552
1553**参数:**
1554
1555| 名称 | 描述 |
1556| -------- | -------- |
1557| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1558| mode | 表示同步过程的类型[Rdb_SyncMode](#rdb_syncmode). |
1559| tables | 表示需要同步的表名。 |
1560| count | 同步的表的数量,如果传入的值为0,同步数据库的所有表。 |
1561| observer | 端云同步进度的观察者[Rdb_ProgressObserver](_rdb___progress_observer.md)。 |
1562
1563**返回:**
1564
1565返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1566
1567**参见:**
1568
1569[OH_Rdb_Store](_o_h___rdb___store.md).
1570
1571
1572### OH_Rdb_Commit()
1573
1574```
1575int OH_Rdb_Commit (OH_Rdb_Store *store)
1576```
1577
1578**描述**
1579
1580提交已执行的SQL语句
1581
1582**起始版本:** 10
1583
1584**参数:**
1585
1586| 名称 | 描述 |
1587| -------- | -------- |
1588| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1589
1590**返回:**
1591
1592返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1593
1594**参见:**
1595
1596[OH_Rdb_Store](_o_h___rdb___store.md).
1597
1598
1599### OH_Rdb_CreatePredicates()
1600
1601```
1602OH_Predicates* OH_Rdb_CreatePredicates (const char *table)
1603```
1604
1605**描述**
1606
1607创建[OH_Predicates](_o_h___predicates.md)实例。
1608
1609**起始版本:** 10
1610
1611**参数:**
1612
1613| 名称 | 描述 |
1614| -------- | -------- |
1615| table | 表示数据库表名。 |
1616
1617**返回:**
1618
1619创建成功则返回一个指向[OH_Predicates](_o_h___predicates.md)结构体实例的指针,否则返回NULL。
1620
1621**参见:**
1622
1623[OH_Predicates](_o_h___predicates.md).
1624
1625
1626### OH_Rdb_CreateValueObject()
1627
1628```
1629OH_VObject* OH_Rdb_CreateValueObject ()
1630```
1631
1632**描述**
1633
1634创建[OH_VObject](_o_h___v_object.md)实例。
1635
1636**起始版本:** 10
1637
1638**返回:**
1639
1640创建成功则返回一个指向[OH_VObject](_o_h___v_object.md)结构体实例的指针,否则返回NULL。
1641
1642**参见:**
1643
1644[OH_VObject](_o_h___v_object.md).
1645
1646
1647### OH_Rdb_CreateValuesBucket()
1648
1649```
1650OH_VBucket* OH_Rdb_CreateValuesBucket ()
1651```
1652
1653**描述**
1654
1655创建[OH_VBucket](_o_h___v_bucket.md)实例。
1656
1657**起始版本:** 10
1658
1659**返回:**
1660
1661创建成功则返回一个指向[OH_VBucket](_o_h___v_bucket.md)结构体实例的指针,否则返回NULL。
1662
1663**参见:**
1664
1665[OH_VBucket](_o_h___v_bucket.md).
1666
1667
1668### OH_Rdb_Delete()
1669
1670```
1671int OH_Rdb_Delete (OH_Rdb_Store *store, OH_Predicates *predicates )
1672```
1673
1674**描述**
1675
1676根据指定的条件删除数据库中的数据。
1677
1678**起始版本:** 10
1679
1680**参数:**
1681
1682| 名称 | 描述 |
1683| -------- | -------- |
1684| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1685| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针,指定删除条件。 |
1686
1687**返回:**
1688
1689如果删除成功,返回删除的行数;如果失败,则返回的结果小于0。
1690
1691**参见:**
1692
1693[OH_Rdb_Store](_o_h___rdb___store.md), [OH_Predicates](_o_h___predicates.md).
1694
1695
1696### OH_Rdb_DeleteStore()
1697
1698```
1699int OH_Rdb_DeleteStore (const OH_Rdb_Config *config)
1700```
1701
1702**描述**
1703
1704使用指定的数据库文件配置删除数据库。
1705
1706**起始版本:** 10
1707
1708**参数:**
1709
1710| 名称 | 描述 |
1711| -------- | -------- |
1712| config | 表示数据库的配置。 |
1713
1714**返回:**
1715
1716返回操作是否成功,出错时返回对应的错误码。
1717
1718
1719### OH_Rdb_Execute()
1720
1721```
1722int OH_Rdb_Execute (OH_Rdb_Store *store, const char *sql )
1723```
1724
1725**描述**
1726
1727执行无返回值的SQL语句。
1728
1729**起始版本:** 10
1730
1731**参数:**
1732
1733| 名称 | 描述 |
1734| -------- | -------- |
1735| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1736| sql | 指定要执行的SQL语句。 |
1737
1738**返回:**
1739
1740返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
1741
1742**参见:**
1743
1744[OH_Rdb_Store](_o_h___rdb___store.md).
1745
1746
1747### OH_Rdb_ExecuteQuery()
1748
1749```
1750OH_Cursor* OH_Rdb_ExecuteQuery (OH_Rdb_Store *store, const char *sql )
1751```
1752
1753**描述**
1754
1755根据指定SQL语句查询数据库中的数据。
1756
1757**起始版本:** 10
1758
1759**参数:**
1760
1761| 名称 | 描述 |
1762| -------- | -------- |
1763| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1764| sql | 指定要执行的SQL语句。 |
1765
1766**返回:**
1767
1768如果查询成功则返回一个指向[OH_Cursor](_o_h___cursor.md)结构体实例的指针,否则返回NULL。
1769
1770**参见:**
1771
1772[OH_Rdb_Store](_o_h___rdb___store.md).
1773
1774
1775### OH_Rdb_FindModifyTime()
1776
1777```
1778OH_Cursor* OH_Rdb_FindModifyTime (OH_Rdb_Store *store, const char *tableName, const char *columnName, OH_VObject *values )
1779```
1780
1781**描述**
1782
1783获取数据库表中数据的最后修改时间。
1784
1785**起始版本:** 11
1786
1787**参数:**
1788
1789| 名称 | 描述 |
1790| -------- | -------- |
1791| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1792| tableName | 要查找的分布式数据库表表名。 |
1793| columnName | 指定要查询的数据库表的列名。 |
1794| values | 指定要查询的行的主键。如果数据库表无主键,参数columnName需传入"rowid",此时values为要查询的数据库表的行号。 |
1795
1796**返回:**
1797
1798返回操作是否成功,出错时返回对应的错误码。
1799
1800**参见:**
1801
1802[OH_Rdb_Store](_o_h___rdb___store.md).
1803
1804
1805### OH_Rdb_GetOrOpen()
1806
1807```
1808OH_Rdb_Store* OH_Rdb_GetOrOpen (const OH_Rdb_Config *config, int *errCode )
1809```
1810
1811**描述**
1812
1813获得一个相关的[OH_Rdb_Store](_o_h___rdb___store.md)实例,操作关系型数据库。
1814
1815**起始版本:** 10
1816
1817**参数:**
1818
1819| 名称 | 描述 |
1820| -------- | -------- |
1821| config | 表示指向[OH_Rdb_Config](_o_h___rdb___config.md)实例的指针,与此RDB存储相关的数据库配置。 |
1822| errCode | 该参数是输出参数,函数执行状态写入该变量。 |
1823
1824**返回:**
1825
1826创建成功则返回一个指向[OH_Rdb_Store](_o_h___rdb___store.md)结构体实例的指针,否则返回NULL。
1827
1828**参见:**
1829
1830[OH_Rdb_Config](_o_h___rdb___config.md), [OH_Rdb_Store](_o_h___rdb___store.md).
1831
1832
1833### OH_Rdb_GetTableDetails()
1834
1835```
1836Rdb_TableDetails* OH_Rdb_GetTableDetails (Rdb_ProgressDetails *progress, int32_t version )
1837```
1838
1839**描述**
1840
1841从端云同步任务的统计信息中获取数据库表的统计信息。
1842
1843**起始版本:** 11
1844
1845**参数:**
1846
1847| 名称 | 描述 |
1848| -------- | -------- |
1849| progress | 表示指向**OH_ProgressDetails**实例的指针。 |
1850| version | 表示当前[Rdb_ProgressDetails](_rdb___progress_details.md)的版本。 |
1851
1852**返回:**
1853
1854如果操作成功,会返回一个[Rdb_TableDetails](_rdb___table_details.md)结构体的指针,否则返回NULL。
1855
1856**参见:**
1857
1858[Rdb_ProgressDetails](_rdb___progress_details.md)
1859
1860[Rdb_TableDetails](_rdb___table_details.md)
1861
1862
1863### OH_Rdb_GetVersion()
1864
1865```
1866int OH_Rdb_GetVersion (OH_Rdb_Store *store, int *version )
1867```
1868
1869**描述**
1870
1871获取数据库版本。
1872
1873**起始版本:** 10
1874
1875**参数:**
1876
1877| 名称 | 描述 |
1878| -------- | -------- |
1879| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1880| version |  该参数是输出参数, 表示版本号。 |
1881
1882**返回:**
1883
1884返回操作是否成功,出错时返回对应的错误码。
1885
1886**参见:**
1887
1888[OH_Rdb_Store](_o_h___rdb___store.md).
1889
1890
1891### OH_Rdb_Insert()
1892
1893```
1894int OH_Rdb_Insert (OH_Rdb_Store *store, const char *table, OH_VBucket *valuesBucket )
1895```
1896
1897**描述**
1898
1899向目标表中插入一行数据。
1900
1901**起始版本:** 10
1902
1903**参数:**
1904
1905| 名称 | 描述 |
1906| -------- | -------- |
1907| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1908| table | 表示指定的目标表名。 |
1909| valuesBucket | 表示要插入到表中的数据行[OH_VBucket](_o_h___v_bucket.md)。 |
1910
1911**返回:**
1912
1913如果插入成功,返回rowID,否则返回的结果小于0。
1914
1915**参见:**
1916
1917[OH_Rdb_Store](_o_h___rdb___store.md), [OH_VBucket](_o_h___v_bucket.md).
1918
1919### OH_Rdb_LockRow()
1920
1921```
1922int OH_Rdb_LockRow (OH_Rdb_Store *store, OH_Predicates *predicates )
1923```
1924
1925**描述**
1926
1927根据指定的条件锁定数据库中的数据,锁定数据不执行端云同步。
1928
1929**起始版本:** 12
1930
1931**参数:**
1932
1933| 名称 | 描述 |
1934| -------- | -------- |
1935| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1936| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针,指定锁定条件。 |
1937
1938**返回:**
1939
1940返回锁定结果。
1941
1942**参见:**
1943
1944[OH_Rdb_Store](_o_h___rdb___store.md), [OH_Predicates](_o_h___predicates.md).
1945
1946### OH_Rdb_Query()
1947
1948```
1949OH_Cursor* OH_Rdb_Query (OH_Rdb_Store *store, OH_Predicates *predicates, const char *const *columnNames, int length )
1950```
1951
1952**描述**
1953
1954根据指定条件查询数据库中的数据
1955
1956**起始版本:** 10
1957
1958**参数:**
1959
1960| 名称 | 描述 |
1961| -------- | -------- |
1962| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1963| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针,指定查询条件。 |
1964| columnNames | 表示要查询的列。如果值为空,则查询应用于所有列。 |
1965| length | 表示columnNames数组的长度。若length大于columnNames数组的实际长度,则会访问越界。 |
1966
1967**返回:**
1968
1969如果查询成功则返回一个指向[OH_Cursor](_o_h___cursor.md)结构体实例的指针,否则返回NULL。
1970
1971**参见:**
1972
1973[OH_Rdb_Store](_o_h___rdb___store.md), [OH_Predicates](_o_h___predicates.md), [OH_Cursor](_o_h___cursor.md).
1974
1975### OH_Rdb_QueryLockedRow()
1976
1977```
1978OH_Cursor *OH_Rdb_QueryLockedRow (OH_Rdb_Store *store, OH_Predicates *predicates, const char *const *columnNames, int length )
1979```
1980
1981**描述**
1982
1983根据指定条件查询数据库中锁定的数据。
1984
1985**起始版本:** 12
1986
1987**参数:**
1988
1989| 名称 | 描述 |
1990| -------- | -------- |
1991| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
1992| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针,指定查询条件。 |
1993| columnNames | 表示要查询的列。如果值为空,则查询应用于所有列。 |
1994| length | 表示columnNames数组的长度。若length大于columnNames数组的实际长度,则会访问越界。 |
1995
1996**返回:**
1997
1998如果查询成功则返回一个指向[OH_Cursor](_o_h___cursor.md)结构体实例的指针,否则返回NULL。
1999
2000**参见:**
2001
2002[OH_Rdb_Store](_o_h___rdb___store.md), [OH_Predicates](_o_h___predicates.md), [OH_Cursor](_o_h___cursor.md).
2003
2004### OH_Rdb_Restore()
2005
2006```
2007int OH_Rdb_Restore (OH_Rdb_Store *store, const char *databasePath )
2008```
2009
2010**描述**
2011
2012从指定的数据库备份文件恢复数据库。
2013
2014**起始版本:** 10
2015
2016**参数:**
2017
2018| 名称 | 描述 |
2019| -------- | -------- |
2020| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
2021| databasePath | 指定数据库的备份文件路径。 |
2022
2023**返回:**
2024
2025返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
2026
2027**参见:**
2028
2029[OH_Rdb_Store](_o_h___rdb___store.md).
2030
2031
2032### OH_Rdb_RollBack()
2033
2034```
2035int OH_Rdb_RollBack (OH_Rdb_Store *store)
2036```
2037
2038**描述**
2039
2040回滚已经执行的SQL语句。
2041
2042**起始版本:** 10
2043
2044**参数:**
2045
2046| 名称 | 描述 |
2047| -------- | -------- |
2048| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
2049
2050**返回:**
2051
2052返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
2053
2054**参见:**
2055
2056[OH_Rdb_Store](_o_h___rdb___store.md).
2057
2058
2059### OH_Rdb_SetDistributedTables()
2060
2061```
2062int OH_Rdb_SetDistributedTables (OH_Rdb_Store *store, const char *tables[], uint32_t count, Rdb_DistributedType type, const Rdb_DistributedConfig * config )
2063```
2064
2065**描述**
2066
2067设置分布式数据库表。
2068
2069**起始版本:** 11
2070
2071**参数:**
2072
2073| 名称 | 描述 |
2074| -------- | -------- |
2075| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
2076| tables | 要设置的分布式数据库表表名。 |
2077| count | 要设置的分布式数据库表的数量。 |
2078| type | 表的分布式类型 [Rdb_DistributedType](#rdb_distributedtype)。 |
2079| config | 表的分布式配置信息。[Rdb_DistributedConfig](_rdb___distributed_config.md)。 |
2080
2081**返回:**
2082
2083返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
2084
2085**参见:**
2086
2087[OH_Rdb_Store](_o_h___rdb___store.md).
2088
2089
2090### OH_Rdb_SetVersion()
2091
2092```
2093int OH_Rdb_SetVersion (OH_Rdb_Store *store, int version )
2094```
2095
2096**描述**
2097
2098设置数据库版本。
2099
2100**起始版本:** 10
2101
2102**参数:**
2103
2104| 名称 | 描述 |
2105| -------- | -------- |
2106| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
2107| version | 表示版本号。 |
2108
2109**返回:**
2110
2111返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
2112
2113**参见:**
2114
2115[OH_Rdb_Store](_o_h___rdb___store.md).
2116
2117
2118### OH_Rdb_Subscribe()
2119
2120```
2121int OH_Rdb_Subscribe (OH_Rdb_Store *store, Rdb_SubscribeType type, const Rdb_DataObserver *observer )
2122```
2123
2124**描述**
2125
2126为数据库注册观察者。当分布式数据库中的数据发生更改时,将调用回调。
2127
2128**起始版本:** 11
2129
2130**参数:**
2131
2132| 名称 | 描述 |
2133| -------- | -------- |
2134| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
2135| type | 表示在[Rdb_SubscribeType](#rdb_subscribetype)中定义的订阅类型。 |
2136| observer | 数据库中更改事件的观察者[Rdb_DataObserver](_rdb___data_observer.md)。 |
2137
2138**返回:**
2139
2140返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
2141
2142**参见:**
2143
2144[OH_Rdb_Store](_o_h___rdb___store.md).
2145
2146[Rdb_DataObserver](_rdb___data_observer.md).
2147
2148
2149### OH_Rdb_SubscribeAutoSyncProgress()
2150
2151```
2152int OH_Rdb_SubscribeAutoSyncProgress (OH_Rdb_Store *store, const Rdb_ProgressObserver *observer )
2153```
2154
2155**描述**
2156
2157订阅RDB存储的自动同步进度。 当收到自动同步进度的通知时,将调用回调。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
2158
2159**起始版本:** 11
2160
2161**参数:**
2162
2163| 名称 | 描述 |
2164| -------- | -------- |
2165| store | 表示指向目标[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
2166| observer | 用于自动同步进度的观察者[Rdb_ProgressObserver](_rdb___progress_observer.md)。表示调用返回自动同步进度的回调。 |
2167
2168**返回:**
2169
2170返回操作是否成功,出错时返回对应的错误码。
2171
2172**参见:**
2173
2174[OH_Rdb_Store](_o_h___rdb___store.md).
2175
2176[Rdb_ProgressObserver](_rdb___progress_observer.md).
2177
2178### OH_Rdb_UnlockRow()
2179
2180```
2181int OH_Rdb_UnlockRow (OH_Rdb_Store *store, OH_Predicates *predicates )
2182```
2183
2184**描述**
2185
2186根据指定的条件锁解锁数据库中的数据。
2187
2188**起始版本:** 12
2189
2190**参数:**
2191
2192| 名称 | 描述 |
2193| -------- | -------- |
2194| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
2195| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针,指定解锁条件。 |
2196
2197**返回:**
2198
2199返回解锁结果。
2200
2201**参见:**
2202
2203[OH_Rdb_Store](_o_h___rdb___store.md), [OH_Predicates](_o_h___predicates.md).
2204
2205### OH_Rdb_Unsubscribe()
2206
2207```
2208int OH_Rdb_Unsubscribe (OH_Rdb_Store *store, Rdb_SubscribeType type, const Rdb_DataObserver *observer )
2209```
2210
2211**描述**
2212
2213从数据库中删除指定类型的指定观察者。
2214
2215**起始版本:** 11
2216
2217**参数:**
2218
2219| 名称 | 描述 |
2220| -------- | -------- |
2221| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针. |
2222| type | 表示在[Rdb_SubscribeType](#rdb_subscribetype)中定义的订阅类型。 |
2223| observer | 数据库中更改事件的观察者[Rdb_DataObserver](_rdb___data_observer.md)。如果这是nullptr,表示删除该类型的所有观察者。 |
2224
2225**返回:**
2226
2227返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
2228
2229**参见:**
2230
2231[OH_Rdb_Store](_o_h___rdb___store.md).
2232
2233[Rdb_DataObserver](_rdb___data_observer.md).
2234
2235
2236### OH_Rdb_UnsubscribeAutoSyncProgress()
2237
2238```
2239int OH_Rdb_UnsubscribeAutoSyncProgress (OH_Rdb_Store *store, const Rdb_ProgressObserver *observer )
2240```
2241
2242**描述**
2243
2244取消订阅RDB存储的自动同步进程。
2245
2246**起始版本:** 11
2247
2248**参数:**
2249
2250| 名称 | 描述 |
2251| -------- | -------- |
2252| store | 表示指向目标[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
2253| observer | 表示自动同步进度的观察者[Rdb_ProgressObserver](_rdb___progress_observer.md)。如果是空指针,则自动同步进程的所有回调都将被取消注册。 |
2254
2255**返回:**
2256
2257返回操作是否成功,出错时返回对应的错误码。RDB_OK 表示成功。 RDB_E_INVALID_ARGS 表示无效参数。
2258
2259**参见:**
2260
2261[OH_Rdb_Store](_o_h___rdb___store.md).
2262
2263[Rdb_ProgressObserver](_rdb___progress_observer.md).
2264
2265
2266### OH_Rdb_Update()
2267
2268```
2269int OH_Rdb_Update (OH_Rdb_Store *store, OH_VBucket *valuesBucket, OH_Predicates *predicates )
2270```
2271
2272**描述**
2273
2274根据指定的条件更新数据库中的数据。
2275
2276**起始版本:** 10
2277
2278**参数:**
2279
2280| 名称 | 描述 |
2281| -------- | -------- |
2282| store | 表示指向[OH_Rdb_Store](_o_h___rdb___store.md)实例的指针。 |
2283| valuesBucket | 表示要更新到表中的数据行[OH_VBucket](_o_h___v_bucket.md)。 |
2284| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针,指定更新条件。 |
2285
2286**返回:**
2287
2288如果更新成功,返回更新的行数,否则返回的结果小于0。
2289
2290**参见:**
2291
2292[OH_Rdb_Store](_o_h___rdb___store.md), [OH_Bucket](_o_h___v_bucket.md), [OH_Predicates](_o_h___predicates.md).
2293
2294
2295### OH_VBucket_PutAsset()
2296
2297```
2298int OH_VBucket_PutAsset (OH_VBucket *bucket, const char *field, OH_Asset *value )
2299```
2300
2301**描述**
2302
2303将**OH_Asset** 类型的对象放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中.
2304
2305**起始版本:** 11
2306
2307**参数:**
2308
2309| 名称 | 描述 |
2310| -------- | -------- |
2311| bucket | 表示指向[OH_VBucket](_o_h___v_bucket.md)实例的指针。 |
2312| field | 数据库表中的列名。 |
2313| value | 数据库表中指定列名对应的值。 |
2314
2315**返回:**
2316
2317返回操作是否成功,出错时返回对应的错误码。
2318
2319**参见:**
2320
2321[OH_VBucket](_o_h___v_bucket.md).
2322
2323
2324### OH_VBucket_PutAssets()
2325
2326```
2327int OH_VBucket_PutAssets (OH_VBucket *bucket, const char *field, OH_Asset **value, int count )
2328```
2329
2330**描述**
2331
2332将**OH_Asset** 类型的对象数组放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中.
2333
2334**起始版本:** 11
2335
2336**参数:**
2337
2338| 名称 | 描述 |
2339| -------- | -------- |
2340| bucket | 表示指向[OH_VBucket](_o_h___v_bucket.md)实例的指针。 |
2341| field | 数据库表中的列名。 |
2342| value | 数据库表中指定列名对应的值。 |
2343| count | 表示传入的**OH_Asset**对象数组元素的个数. |
2344
2345**返回:**
2346
2347返回操作是否成功,出错时返回对应的错误码。
2348
2349**参见:**
2350
2351[OH_VBucket](_o_h___v_bucket.md).
2352
2353## 变量说明
2354
2355
2356### andOperate
2357
2358```
2359OH_Predicates *(*andOperate) (OH_Predicates *predicates)
2360```
2361
2362**描述**
2363
2364函数指针,向谓词添加和条件。
2365
2366该方法等同于SQL语句中的“AND”。
2367
2368**起始版本:** 10
2369
2370**参数:**
2371
2372| 名称 | 描述 |
2373| -------- | -------- |
2374| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
2375
2376**返回:**
2377
2378返回带有和条件的谓词。
2379
2380**参见:**
2381
2382[OH_Predicates](_o_h___predicates.md).
2383
2384
2385### area
2386
2387```
2388int OH_Rdb_Config::area
2389```
2390
2391**描述**
2392
2393设置数据库安全区域等级[Rdb_SecurityArea](#rdb_securityarea)。
2394
2395**起始版本:** 11
2396
2397
2398### beginWrap
2399
2400```
2401OH_Predicates *(*beginWrap) (OH_Predicates *predicates)
2402```
2403
2404**描述**
2405
2406函数指针,向谓词添加左括号。
2407
2408该方法等同于SQL语句中的“(”。
2409
2410**起始版本:** 10
2411
2412**参数:**
2413
2414| 名称 | 描述 |
2415| -------- | -------- |
2416| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
2417
2418**返回:**
2419
2420返回带有左括号的谓词。
2421
2422**参见:**
2423
2424[OH_Predicates](_o_h___predicates.md).
2425
2426
2427### between
2428
2429```
2430OH_Predicates *(*between) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
2431```
2432
2433**描述**
2434
2435函数指针,将谓词配置为匹配数据字段为field且其值在给定范围内的指定字段。
2436
2437该方法等同于SQL语句中的“BETWEEN”。
2438
2439**起始版本:** 10
2440
2441**参数:**
2442
2443| 名称 | 描述 |
2444| -------- | -------- |
2445| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
2446| field | 数据库表中的列名。 |
2447| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
2448
2449**返回:**
2450
2451返回与指定字段匹配的谓词。
2452
2453**参见:**
2454
2455[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
2456
2457
2458### briefObserver
2459
2460```
2461Rdb_BriefObserver Rdb_SubscribeCallback::briefObserver
2462```
2463
2464**描述**
2465
2466端云数据更改事件的回调函数。
2467
2468
2469### bundleName
2470
2471```
2472const char* OH_Rdb_Config::bundleName
2473```
2474
2475**描述**
2476
2477应用包名。
2478
2479
2480### callback [1/2]
2481
2482```
2483Rdb_SubscribeCallback Rdb_DataObserver::callback
2484```
2485
2486**描述**
2487
2488数据观察者的回调。
2489
2490
2491### callback [2/2]
2492
2493```
2494Rdb_ProgressCallback Rdb_ProgressObserver::callback
2495```
2496
2497**描述**
2498
2499端云同步进度观察者的回调函数。
2500
2501
2502### capability
2503
2504```
2505uint16_t OH_VBucket::capability
2506```
2507
2508**描述**
2509
2510表示结构体的存储键值对的数量
2511
2512
2513### ChangeType
2514
2515```
2516int Rdb_ChangeInfo::ChangeType
2517```
2518
2519**描述**
2520
2521表示发生变化的数据的类型,数据或者资产附件发生变化。
2522
2523
2524### clear [1/2]
2525
2526```
2527OH_Predicates *(*clear) (OH_Predicates *predicates)
2528```
2529
2530**描述**
2531
2532函数指针,清空谓词。
2533
2534**起始版本:** 10
2535
2536**参数:**
2537
2538| 名称 | 描述 |
2539| -------- | -------- |
2540| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
2541
2542**返回:**
2543
2544返回清空后的谓词
2545
2546**参见:**
2547
2548[OH_Predicates](_o_h___predicates.md).
2549
2550
2551### clear [2/2]
2552
2553```
2554int(*clear) (OH_VBucket *bucket)
2555```
2556
2557**描述**
2558
2559清空[OH_VBucket](_o_h___v_bucket.md)对象。
2560
2561**起始版本:** 10
2562
2563**参数:**
2564
2565| 名称 | 描述 |
2566| -------- | -------- |
2567| bucket | 表示指向[OH_VBucket](_o_h___v_bucket.md)实例的指针。 |
2568
2569**返回:**
2570
2571返回操作是否成功,出错时返回对应的错误码。
2572
2573**参见:**
2574
2575[OH_VBucket](_o_h___v_bucket.md).
2576
2577
2578### code
2579
2580```
2581int Rdb_ProgressDetails::code
2582```
2583
2584**描述**
2585
2586表示端云同步过程的状态。
2587
2588
2589### context [1/2]
2590
2591```
2592void* Rdb_DataObserver::context
2593```
2594
2595**描述**
2596
2597表示数据观察者的上下文。
2598
2599
2600### context [2/2]
2601
2602```
2603void* Rdb_ProgressObserver::context
2604```
2605
2606**描述**
2607
2608端云同步进度观察者的上下文。
2609
2610
2611### count
2612
2613```
2614int Rdb_KeyInfo::count
2615```
2616
2617**描述**
2618
2619表示发生变化的主键或者行号的数量。
2620
2621
2622### dataBaseDir
2623
2624```
2625const char* OH_Rdb_Config::dataBaseDir
2626```
2627
2628**描述**
2629
2630数据库文件路径。
2631
2632
2633### deleted
2634
2635```
2636Rdb_KeyInfo Rdb_ChangeInfo::deleted
2637```
2638
2639**描述**
2640
2641记录删除数据的位置,如果该表的主键是string类型,该值是主键的值,否则该值表示删除数据的行号。
2642
2643
2644### destroy [1/4]
2645
2646```
2647int(*destroy) (OH_Cursor *cursor)
2648```
2649
2650**描述**
2651
2652函数指针,关闭结果集。
2653
2654**起始版本:** 10
2655
2656**参数:**
2657
2658| 名称 | 描述 |
2659| -------- | -------- |
2660| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
2661
2662**返回:**
2663
2664返回操作是否成功,出错时返回对应的错误码。
2665
2666**参见:**
2667
2668[OH_Cursor](_o_h___cursor.md).
2669
2670
2671### destroy [2/4]
2672
2673```
2674int(*destroy) (OH_Predicates *predicates)
2675```
2676
2677**描述**
2678
2679销毁[OH_Predicates](_o_h___predicates.md)对象,并回收该对象占用的内存。
2680
2681**起始版本:** 10
2682
2683**参数:**
2684
2685| 名称 | 描述 |
2686| -------- | -------- |
2687| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
2688
2689**返回:**
2690
2691返回操作是否成功,出错时返回对应的错误码。
2692
2693**参见:**
2694
2695[OH_Predicates](_o_h___predicates.md).
2696
2697
2698### destroy [3/4]
2699
2700```
2701int(*destroy) (OH_VBucket *bucket)
2702```
2703
2704**描述**
2705
2706销毁[OH_VBucket](_o_h___v_bucket.md)对象,并回收该对象占用的内存。
2707
2708**起始版本:** 10
2709
2710**参数:**
2711
2712| 名称 | 描述 |
2713| -------- | -------- |
2714| bucket | 表示指向[OH_VBucket](_o_h___v_bucket.md)实例的指针。 |
2715
2716**返回:**
2717
2718返回操作是否成功,出错时返回对应的错误码。
2719
2720**参见:**
2721
2722[OH_VBucket](_o_h___v_bucket.md).
2723
2724
2725### destroy [4/4]
2726
2727```
2728int(*destroy) (OH_VObject *valueObject)
2729```
2730
2731**描述**
2732
2733销毁[OH_VObject](_o_h___v_object.md)对象,并回收该对象占用的内存。
2734
2735**起始版本:** 10
2736
2737**参数:**
2738
2739| 名称 | 描述 |
2740| -------- | -------- |
2741| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针。 |
2742
2743**返回:**
2744
2745返回操作是否成功,出错时返回对应的错误码。
2746
2747**参见:**
2748
2749[OH_VObject](_o_h___v_object.md).
2750
2751
2752### detailsObserver
2753
2754```
2755Rdb_DetailsObserver Rdb_SubscribeCallback::detailsObserver
2756```
2757
2758**描述**
2759
2760端云数据更改事件的细节的回调函数。
2761
2762
2763### distinct
2764
2765```
2766OH_Predicates *(*distinct) (OH_Predicates *predicates)
2767```
2768
2769**描述**
2770
2771函数指针,配置谓词以过滤重复记录并仅保留其中一个。
2772
2773该方法等同于SQL语句中的“DISTINCT”。
2774
2775**起始版本:** 10
2776
2777**参数:**
2778
2779| 名称 | 描述 |
2780| -------- | -------- |
2781| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
2782
2783**返回:**
2784
2785返回可用于过滤重复记录的谓词。
2786
2787**参见:**
2788
2789[OH_Predicates](_o_h___predicates.md).
2790
2791
2792### download
2793
2794```
2795Rdb_Statistic Rdb_TableDetails::download
2796```
2797
2798**描述**
2799
2800表示数据库表中端云同步下载过程的统计信息。
2801
2802
2803### endWrap
2804
2805```
2806OH_Predicates *(*endWrap) (OH_Predicates *predicates)
2807```
2808
2809**描述**
2810
2811函数指针,向谓词添加右括号。
2812
2813该方法等同于SQL语句中的“)”。
2814
2815**起始版本:** 10
2816
2817**参数:**
2818
2819| 名称 | 描述 |
2820| -------- | -------- |
2821| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
2822
2823**返回:**
2824
2825返回带有右括号的谓词。
2826
2827**参见:**
2828
2829[OH_Predicates](_o_h___predicates.md).
2830
2831
2832### equalTo
2833
2834```
2835OH_Predicates *(*equalTo) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
2836```
2837
2838**描述**
2839
2840函数指针,配置谓词以匹配数据字段等于指定值的字段。
2841
2842该方法等同于SQL语句中的“=”。
2843
2844**起始版本:** 10
2845
2846**参数:**
2847
2848| 名称 | 描述 |
2849| -------- | -------- |
2850| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
2851| field | 数据库表中的列名 |
2852| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
2853
2854**返回:**
2855
2856返回与指定字段匹配的谓词。
2857
2858**参见:**
2859
2860[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
2861
2862
2863### failed
2864
2865```
2866int Rdb_Statistic::failed
2867```
2868
2869**描述**
2870
2871表示数据库表中端云同步失败的行数。
2872
2873
2874### getAsset
2875
2876```
2877int(*getAsset) (OH_Cursor *cursor, int32_t columnIndex, Data_Asset *value)
2878```
2879
2880**描述**
2881
2882函数指针,以资产的形式获取当前行中指定列的值。
2883
2884**起始版本:** 11
2885
2886**参数:**
2887
2888| 名称 | 描述 |
2889| -------- | -------- |
2890| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
2891| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
2892| value | 该参数是输出参数,结果集中指定列的值会以资产形式写入该变量。 |
2893
2894**返回:**
2895
2896返回操作是否成功,出错时返回对应的错误码。
2897
2898**参见:**
2899
2900[OH_Cursor](_o_h___cursor.md).
2901
2902
2903### getAssets
2904
2905```
2906int(*getAssets) (OH_Cursor *cursor, int32_t columnIndex, Data_Asset **value, uint32_t length)
2907```
2908
2909**描述**
2910
2911函数指针,以资产数组的形式获取当前行中指定列的值。
2912
2913**起始版本:** 11
2914
2915**参数:**
2916
2917| 名称 | 描述 |
2918| -------- | -------- |
2919| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
2920| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
2921| value | 该参数是输出参数,结果集中指定列的值会以资产数组形式写入该变量。 |
2922| length | 表示资产数组的长度。 |
2923
2924**返回:**
2925
2926返回操作是否成功,出错时返回对应的错误码。
2927
2928**参见:**
2929
2930[OH_Cursor](_o_h___cursor.md).
2931
2932
2933### getBlob
2934
2935```
2936int(*getBlob) (OH_Cursor *cursor, int32_t columnIndex, unsigned char *value, int length)
2937```
2938
2939**描述**
2940
2941函数指针,以字节数组的形式获取当前行中指定列的值。
2942
2943**起始版本:** 10
2944
2945**参数:**
2946
2947| 名称 | 描述 |
2948| -------- | -------- |
2949| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
2950| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
2951| value | 该参数是输出参数,结果集中指定列的值会以字节数组形式写入该变量。 |
2952| length | 表示value的长度,该值可通过getSize获取。 |
2953
2954**返回:**
2955
2956返回操作是否成功,出错时返回对应的错误码。
2957
2958**参见:**
2959
2960[OH_Cursor](_o_h___cursor.md).
2961
2962
2963### getColumnCount
2964
2965```
2966int(*getColumnCount) (OH_Cursor *cursor, int *count)
2967```
2968
2969**描述**
2970
2971函数指针,获取结果集中的列数。
2972
2973**起始版本:** 10
2974
2975**参数:**
2976
2977| 名称 | 描述 |
2978| -------- | -------- |
2979| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
2980| count | 该参数是输出参数,结果集中的列数会写入该变量。 |
2981
2982**返回:**
2983
2984返回操作是否成功,出错时返回对应的错误码。
2985
2986**参见:**
2987
2988[OH_Cursor](_o_h___cursor.md).
2989
2990
2991### getColumnIndex
2992
2993```
2994int(*getColumnIndex) (OH_Cursor *cursor, const char *name, int *columnIndex)
2995```
2996
2997**描述**
2998
2999函数指针,根据指定的列名获取列索引。
3000
3001**起始版本:** 10
3002
3003**参数:**
3004
3005| 名称 | 描述 |
3006| -------- | -------- |
3007| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3008| name | 表示结果集中指定列的名称。 |
3009| columnIndex | 该参数是输出参数,结果集中指定列的索引会写入该变量。 |
3010
3011**返回:**
3012
3013返回操作是否成功,出错时返回对应的错误码。
3014
3015**参见:**
3016
3017[OH_Cursor](_o_h___cursor.md).
3018
3019
3020### getColumnName
3021
3022```
3023int(*getColumnName) (OH_Cursor *cursor, int32_t columnIndex, char *name, int length)
3024```
3025
3026**描述**
3027
3028函数指针,根据指定的列索引获取列名。
3029
3030**起始版本:** 10
3031
3032**参数:**
3033
3034| 名称 | 描述 |
3035| -------- | -------- |
3036| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3037| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
3038| name | 该参数是输出参数,结果集中指定列的名称会写入该变量。 |
3039| length | 表示列名的长度。 |
3040
3041**返回:**
3042
3043返回操作是否成功,出错时返回对应的错误码。
3044
3045**参见:**
3046
3047[OH_Cursor](_o_h___cursor.md).
3048
3049
3050### getColumnType
3051
3052```
3053int(*getColumnType) (OH_Cursor *cursor, int32_t columnIndex, OH_ColumnType *columnType)
3054```
3055
3056**描述**
3057
3058函数指针,根据指定的列索引获取列类型。
3059
3060**起始版本:** 10
3061
3062**参数:**
3063
3064| 名称 | 描述 |
3065| -------- | -------- |
3066| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3067| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
3068| columnType | 该参数是输出参数,结果集中指定列的数据类型[OH_ColumnType](#oh_columntype)会写入该变量。 |
3069
3070**返回:**
3071
3072返回操作是否成功,出错时返回对应的错误码。
3073
3074**参见:**
3075
3076[OH_Cursor](_o_h___cursor.md), [OH_ColumnType](#oh_columntype).
3077
3078
3079### getInt64
3080
3081```
3082int(*getInt64) (OH_Cursor *cursor, int32_t columnIndex, int64_t *value)
3083```
3084
3085**描述**
3086
3087函数指针,以int64_t形式获取当前行中指定列的值。
3088
3089**起始版本:** 10
3090
3091**参数:**
3092
3093| 名称 | 描述 |
3094| -------- | -------- |
3095| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3096| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
3097| value | 该参数是输出参数,结果集中指定列的值会以int64_t形式写入该变量。 |
3098
3099**返回:**
3100
3101返回操作是否成功,出错时返回对应的错误码。
3102
3103**参见:**
3104
3105[OH_Cursor](_o_h___cursor.md).
3106
3107
3108### getReal
3109
3110```
3111int(*getReal) (OH_Cursor *cursor, int32_t columnIndex, double *value)
3112```
3113
3114**描述**
3115
3116函数指针,以double形式获取当前行中指定列的值。
3117
3118**起始版本:** 10
3119
3120**参数:**
3121
3122| 名称 | 描述 |
3123| -------- | -------- |
3124| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3125| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
3126| value | 该参数是输出参数,结果集中指定列的值会以double形式写入该变量。 |
3127
3128**返回:**
3129
3130返回操作是否成功,出错时返回对应的错误码。
3131
3132**参见:**
3133
3134[OH_Cursor](_o_h___cursor.md).
3135
3136
3137### getRowCount
3138
3139```
3140int(*getRowCount) (OH_Cursor *cursor, int *count)
3141```
3142
3143**描述**
3144
3145函数指针,获取结果集中的行数。
3146
3147**起始版本:** 10
3148
3149**参数:**
3150
3151| 名称 | 描述 |
3152| -------- | -------- |
3153| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3154| count | 该参数是输出参数,结果集中的行数会写入该变量。 |
3155
3156**返回:**
3157
3158返回操作是否成功,出错时返回对应的错误码。
3159
3160**参见:**
3161
3162[OH_Cursor](_o_h___cursor.md).
3163
3164
3165### getSize
3166
3167```
3168int(*getSize) (OH_Cursor *cursor, int32_t columnIndex, size_t *size)
3169```
3170
3171**描述**
3172
3173函数指针,当结果集中列的数据类型是BLOB或者TEXT时,获取其值所需的内存。
3174
3175**起始版本:** 10
3176
3177**参数:**
3178
3179| 名称 | 描述 |
3180| -------- | -------- |
3181| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3182| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
3183| size | 该参数是输出参数,BLOB或者TEXT数据所需内存大小会写入该变量。 |
3184
3185**返回:**
3186
3187返回操作是否成功,出错时返回对应的错误码。
3188
3189**参见:**
3190
3191[OH_Cursor](_o_h___cursor.md).
3192
3193
3194### getText
3195
3196```
3197int(*getText) (OH_Cursor *cursor, int32_t columnIndex, char *value, int length)
3198```
3199
3200**描述**
3201
3202函数指针,以字符串形式获取当前行中指定列的值。
3203
3204**起始版本:** 10
3205
3206**参数:**
3207
3208| 名称 | 描述 |
3209| -------- | -------- |
3210| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3211| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
3212| value | 该参数是输出参数,结果集中指定列的值会以字符串形式写入该变量。 |
3213| length | 表示value的长度,该值可通过getSize获取。 |
3214
3215**返回:**
3216
3217返回操作是否成功,出错时返回对应的错误码。
3218
3219**参见:**
3220
3221[OH_Cursor](_o_h___cursor.md).
3222
3223
3224### goToNextRow
3225
3226```
3227int(*goToNextRow) (OH_Cursor *cursor)
3228```
3229
3230**描述**
3231
3232函数指针,转到结果集的下一行。
3233
3234**起始版本:** 10
3235
3236**参数:**
3237
3238| 名称 | 描述 |
3239| -------- | -------- |
3240| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3241
3242**返回:**
3243
3244返回操作是否成功,出错时返回对应的错误码。
3245
3246**参见:**
3247
3248[OH_Cursor](_o_h___cursor.md).
3249
3250
3251### greaterThan
3252
3253```
3254OH_Predicates *(*greaterThan) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
3255```
3256
3257**描述**
3258
3259函数指针,配置谓词以匹配数据字段为field且值大于指定值valueObject的字段。
3260
3261该方法等同于SQL语句中的“&gt;”。
3262
3263**起始版本:** 10
3264
3265**参数:**
3266
3267| 名称 | 描述 |
3268| -------- | -------- |
3269| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3270| field | 数据库表中的列名。 |
3271| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
3272
3273**返回:**
3274
3275返回与指定字段匹配的谓词
3276
3277**参见:**
3278
3279[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
3280
3281
3282### greaterThanOrEqualTo
3283
3284```
3285OH_Predicates *(*greaterThanOrEqualTo) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
3286```
3287
3288**描述**
3289
3290函数指针,配置谓词以匹配数据字段为field且值大于或等于指定值valueObject的字段
3291
3292该方法等同于SQL语句中的“&gt;=”。
3293
3294**起始版本:** 10
3295
3296**参数:**
3297
3298| 名称 | 描述 |
3299| -------- | -------- |
3300| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3301| field | 数据库表中的列名。 |
3302| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
3303
3304**返回:**
3305
3306返回与指定字段匹配的谓词。
3307
3308**参见:**
3309
3310[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
3311
3312
3313### groupBy
3314
3315```
3316OH_Predicates *(*groupBy) (OH_Predicates *predicates, char const *const *fields, int length)
3317```
3318
3319**描述**
3320
3321函数指针,配置R谓词按指定列分组查询结果。
3322
3323该方法等同于SQL语句中的“GROUP BY”。
3324
3325**起始版本:** 10
3326
3327**参数:**
3328
3329| 名称 | 描述 |
3330| -------- | -------- |
3331| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3332| fields | 指定分组依赖的列名。 |
3333| length | 表示fields数值的长度。 |
3334
3335**返回:**
3336
3337返回分组查询列的谓词。
3338
3339**参见:**
3340
3341[OH_Predicates](_o_h___predicates.md).
3342
3343
3344### id [1/5]
3345
3346```
3347int64_t OH_Cursor::id
3348```
3349
3350**描述**
3351
3352OH_Cursor结构体的唯一标识符。
3353
3354
3355### id [2/5]
3356
3357```
3358int64_t OH_Predicates::id
3359```
3360
3361**描述**
3362
3363OH_Predicates结构体的唯一标识符。
3364
3365
3366### id [3/5]
3367
3368```
3369int64_t OH_VObject::id
3370```
3371
3372**描述**
3373
3374OH_VObject结构体的唯一标识符。
3375
3376
3377### id [4/5]
3378
3379```
3380int64_t OH_VBucket::id
3381```
3382
3383**描述**
3384
3385OH_VBucket结构体的唯一标识符。
3386
3387
3388### id [5/5]
3389
3390```
3391int64_t OH_Rdb_Store::id
3392```
3393
3394**描述**
3395
3396OH_Rdb_Store结构体的唯一标识符。
3397
3398
3399### in
3400
3401```
3402OH_Predicates *(*in) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
3403```
3404
3405**描述**
3406
3407函数指针,配置谓词以匹配数据字段为field且值在给定范围内的指定字段。
3408
3409该方法等同于SQL语句中的“IN”。
3410
3411**起始版本:** 10
3412
3413**参数:**
3414
3415| 名称 | 描述 |
3416| -------- | -------- |
3417| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3418| field | 表示数据库表中的列名。 |
3419| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
3420
3421**返回:**
3422
3423返回与指定字段匹配的谓词。
3424
3425**参见:**
3426
3427[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
3428
3429
3430### inserted
3431
3432```
3433Rdb_KeyInfo Rdb_ChangeInfo::inserted
3434```
3435
3436**描述**
3437
3438记录插入数据的位置,如果该表的主键是string类型,该值是主键的值,否则该值表示插入数据的行号。
3439
3440
3441### integer
3442
3443```
3444uint64_t Rdb_KeyInfo::Rdb_KeyData::integer
3445```
3446
3447**描述**
3448
3449存放uint64_t类型的数据。
3450
3451
3452### isAutoSync
3453
3454```
3455bool Rdb_DistributedConfig::isAutoSync
3456```
3457
3458**描述**
3459
3460表示该表是否支持自动同步。
3461
3462
3463### isEncrypt
3464
3465```
3466bool OH_Rdb_Config::isEncrypt
3467```
3468
3469**描述**
3470
3471指定数据库是否加密。
3472
3473
3474### isNotNull
3475
3476```
3477OH_Predicates *(*isNotNull) (OH_Predicates *predicates, const char *field)
3478```
3479
3480**描述**
3481
3482函数指针,配置谓词以匹配值不为null的指定字段。
3483
3484该方法等同于SQL语句中的“IS NOT NULL”。
3485
3486**起始版本:** 10
3487
3488**参数:**
3489
3490| 名称 | 描述 |
3491| -------- | -------- |
3492| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3493| field | 数据库表中的列名。 |
3494
3495**返回:**
3496
3497返回与指定字段匹配的谓词
3498
3499**参见:**
3500
3501[OH_Predicates](_o_h___predicates.md).
3502
3503
3504### isNull [1/2]
3505
3506```
3507int(*isNull) (OH_Cursor *cursor, int32_t columnIndex, bool *isNull)
3508```
3509
3510**描述**
3511
3512函数指针,检查当前行中指定列的值是否为null。
3513
3514**起始版本:** 10
3515
3516**参数:**
3517
3518| 名称 | 描述 |
3519| -------- | -------- |
3520| cursor | 表示指向[OH_Cursor](_o_h___cursor.md)实例的指针。 |
3521| columnIndex | 表示结果集中指定列的索引, 索引值从0开始。 |
3522| isNull | 该参数是输出参数,如果当前行中指定列的值为null,该值为true,否则为false。 |
3523
3524**返回:**
3525
3526返回操作是否成功,出错时返回对应的错误码。
3527
3528**参见:**
3529
3530[OH_Cursor](_o_h___cursor.md).
3531
3532
3533### isNull [2/2]
3534
3535```
3536OH_Predicates *(*isNull) (OH_Predicates *predicates, const char *field)
3537```
3538
3539**描述**
3540
3541函数指针,配置谓词以匹配值为null的字段。
3542
3543该方法等同于SQL语句中的“IS NULL”。
3544
3545**起始版本:** 10
3546
3547**参数:**
3548
3549| 名称 | 描述 |
3550| -------- | -------- |
3551| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3552| field | 数据库表中的列名。 |
3553
3554**返回:**
3555
3556返回与指定字段匹配的谓词。
3557
3558**参见:**
3559
3560[OH_Predicates](_o_h___predicates.md).
3561
3562
3563### lessThan
3564
3565```
3566OH_Predicates *(*lessThan) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
3567```
3568
3569**描述**
3570
3571函数指针,配置谓词以匹配数据字段为field且值小于指定值valueObject的字段
3572
3573该方法等同于SQL语句中的“&lt;”。
3574
3575**起始版本:** 10
3576
3577**参数:**
3578
3579| 名称 | 描述 |
3580| -------- | -------- |
3581| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3582| field | 数据库表中的列名。 |
3583| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
3584
3585**返回:**
3586
3587返回与指定字段匹配的谓词。
3588
3589**参见:**
3590
3591[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
3592
3593
3594### lessThanOrEqualTo
3595
3596```
3597OH_Predicates *(*lessThanOrEqualTo) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
3598```
3599
3600**描述**
3601
3602函数指针,配置谓词以匹配数据字段为field且值小于或等于指定值valueObject的字段
3603
3604该方法等同于SQL语句中的“&lt;=”。
3605
3606**起始版本:** 10
3607
3608**参数:**
3609
3610| 名称 | 描述 |
3611| -------- | -------- |
3612| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3613| field | 数据库表中的列名。 |
3614| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
3615
3616**返回:**
3617
3618返回与指定字段匹配的谓词。
3619
3620**参见:**
3621
3622[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
3623
3624
3625### like
3626
3627```
3628OH_Predicates *(*like) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
3629```
3630
3631**描述**
3632
3633函数指针,配置谓词以匹配数据字段为field且值类似于指定字符串的字段。
3634
3635该方法等同于SQL语句中的“LIKE”。
3636
3637**起始版本:** 10
3638
3639**参数:**
3640
3641| 名称 | 描述 |
3642| -------- | -------- |
3643| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3644| field | 数据库表中的列名。 |
3645| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
3646
3647**返回:**
3648
3649返回与指定字段匹配的谓词。
3650
3651**参见:**
3652
3653[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
3654
3655
3656### limit
3657
3658```
3659OH_Predicates *(*limit) (OH_Predicates *predicates, unsigned int value)
3660```
3661
3662**描述**
3663
3664函数指针,设置最大数据记录数的谓词。
3665
3666该方法等同于SQL语句中的“LIMIT”。
3667
3668**起始版本:** 10
3669
3670**参数:**
3671
3672| 名称 | 描述 |
3673| -------- | -------- |
3674| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3675| value | 表示最大数据记录数。 |
3676
3677**返回:**
3678
3679返回可用于设置最大数据记录数的谓词。
3680
3681**参见:**
3682
3683[OH_Predicates](_o_h___predicates.md).
3684
3685
3686### moduleName
3687
3688```
3689const char* OH_Rdb_Config::moduleName
3690```
3691
3692**描述**
3693
3694应用模块名。
3695
3696
3697### notBetween
3698
3699```
3700OH_Predicates *(*notBetween) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
3701```
3702
3703**描述**
3704
3705函数指针,将谓词配置为匹配数据字段为field且其值超出给定范围内的指定字段。
3706
3707该方法等同于SQL语句中的“NOT BETWEEN”。
3708
3709**起始版本:** 10
3710
3711**参数:**
3712
3713| 名称 | 描述 |
3714| -------- | -------- |
3715| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3716| field | 数据库表中的列名。 |
3717| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
3718
3719**返回:**
3720
3721返回与指定字段匹配的谓词。
3722
3723**参见:**
3724
3725[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
3726
3727
3728### notEqualTo
3729
3730```
3731OH_Predicates *(*notEqualTo) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
3732```
3733
3734**描述**
3735
3736函数指针,配置谓词以匹配数据字段不等于指定值的字段。
3737
3738该方法等同于SQL语句中的“!=”。
3739
3740**起始版本:** 10
3741
3742**参数:**
3743
3744| 名称 | 描述 |
3745| -------- | -------- |
3746| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3747| field | 数据库表中的列名。 |
3748| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
3749
3750**返回:**
3751
3752返回与指定字段匹配的谓词。
3753
3754**参见:**
3755
3756[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
3757
3758
3759### notIn
3760
3761```
3762OH_Predicates *(*notIn) (OH_Predicates *predicates, const char *field, OH_VObject *valueObject)
3763```
3764
3765**描述**
3766
3767函数指针,配置谓词以匹配数据字段为field且值超出给定范围内的指定字段。
3768
3769该方法等同于SQL语句中的“NOT IN”。
3770
3771**起始版本:** 10
3772
3773**参数:**
3774
3775| 名称 | 描述 |
3776| -------- | -------- |
3777| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3778| field | 表示数据库表中的列名。 |
3779| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针,指示要与谓词匹配的值。 |
3780
3781**返回:**
3782
3783返回与指定字段匹配的谓词。
3784
3785**参见:**
3786
3787[OH_Predicates](_o_h___predicates.md), [OH_VObject](_o_h___v_object.md).
3788
3789
3790### offset
3791
3792```
3793OH_Predicates *(*offset) (OH_Predicates *predicates, unsigned int rowOffset)
3794```
3795
3796**描述**
3797
3798函数指针,配置谓词以指定返回结果的起始位置。
3799
3800该方法等同于SQL语句中的“OFFSET”。
3801
3802**起始版本:** 10
3803
3804**参数:**
3805
3806| 名称 | 描述 |
3807| -------- | -------- |
3808| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3809| rowOffset | 返回结果的起始位置,取值为正整数。 |
3810
3811**返回:**
3812
3813返回具有指定返回结果起始位置的谓词。
3814
3815**参见:**
3816
3817[OH_Predicates](_o_h___predicates.md).
3818
3819
3820### orderBy
3821
3822```
3823OH_Predicates *(*orderBy) (OH_Predicates *predicates, const char *field, OH_OrderType type)
3824```
3825
3826**描述**
3827
3828函数指针,配置谓词以匹配其值按升序或降序排序的列。
3829
3830该方法等同于SQL语句中的“ORDER BY”。
3831
3832**起始版本:** 10
3833
3834**参数:**
3835
3836| 名称 | 描述 |
3837| -------- | -------- |
3838| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3839| field | 数据库表中的列名。 |
3840| type | 表示排序类型 [OH_OrderType](#oh_ordertype). |
3841
3842**返回:**
3843
3844返回与指定字段匹配的谓词。
3845
3846**参见:**
3847
3848[OH_Predicates](_o_h___predicates.md), [OH_OrderType](#oh_ordertype).
3849
3850
3851### orOperate
3852
3853```
3854OH_Predicates *(*orOperate) (OH_Predicates *predicates)
3855```
3856
3857**描述**
3858
3859函数指针,将或条件添加到谓词中。
3860
3861该方法等同于SQL语句中的“OR”。
3862
3863**起始版本:** 10
3864
3865**参数:**
3866
3867| 名称 | 描述 |
3868| -------- | -------- |
3869| predicates | 表示指向[OH_Predicates](_o_h___predicates.md)实例的指针。 |
3870
3871**返回:**
3872
3873返回带有或条件的谓词。
3874
3875**参见:**
3876
3877[OH_Predicates](_o_h___predicates.md).
3878
3879
3880### putBlob
3881
3882```
3883int(*putBlob) (OH_VBucket *bucket, const char *field, const uint8_t *value, uint32_t size)
3884```
3885
3886**描述**
3887
3888将const uint8_t \*值放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。
3889
3890**起始版本:** 10
3891
3892**参数:**
3893
3894| 名称 | 描述 |
3895| -------- | -------- |
3896| bucket | 表示指向[OH_VBucket](_o_h___v_bucket.md)实例的指针。 |
3897| field | 数据库表中的列名。 |
3898| value | 数据库表中指定列名对应的值。 |
3899| size | 表示value的长度。 |
3900
3901**返回:**
3902
3903返回操作是否成功,出错时返回对应的错误码。
3904
3905**参见:**
3906
3907[OH_VBucket](_o_h___v_bucket.md).
3908
3909
3910### putDouble
3911
3912```
3913int(*putDouble) (OH_VObject *valueObject, double *value, uint32_t count)
3914```
3915
3916**描述**
3917
3918将double类型的单个参数或者数组转换为[OH_VObject](_o_h___v_object.md)类型的值。
3919
3920**起始版本:** 10
3921
3922**参数:**
3923
3924| 名称 | 描述 |
3925| -------- | -------- |
3926| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针。 |
3927| value | 表示指向double类型的单个参数或者数组的指针。 |
3928| count | 如果value是指向单个数值的指针,则count = 1;如果value是指向数组的指针,则count是数组的长度。 |
3929
3930**返回:**
3931
3932返回操作是否成功,出错时返回对应的错误码。
3933
3934**参见:**
3935
3936[OH_VObject](_o_h___v_object.md).
3937
3938
3939### putInt64 [1/2]
3940
3941```
3942int(*putInt64) (OH_VBucket *bucket, const char *field, int64_t value)
3943```
3944
3945**描述**
3946
3947将int64_t值放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。
3948
3949**起始版本:** 10
3950
3951**参数:**
3952
3953| 名称 | 描述 |
3954| -------- | -------- |
3955| bucket | 表示指向[OH_VBucket](_o_h___v_bucket.md)实例的指针。 |
3956| field | 数据库表中的列名。 |
3957| value | 数据库表中指定列名对应的值。 |
3958
3959**返回:**
3960
3961返回操作是否成功,出错时返回对应的错误码。
3962
3963**参见:**
3964
3965[OH_VBucket](_o_h___v_bucket.md).
3966
3967
3968### putInt64 [2/2]
3969
3970```
3971int(*putInt64) (OH_VObject *valueObject, int64_t *value, uint32_t count)
3972```
3973
3974**描述**
3975
3976将int64类型的单个参数或者数组转换为[OH_VObject](_o_h___v_object.md)类型的值。
3977
3978**起始版本:** 10
3979
3980**参数:**
3981
3982| 名称 | 描述 |
3983| -------- | -------- |
3984| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针。 |
3985| value | 表示指向int64_t类型的单个参数或者数组的指针。 |
3986| count | 如果value是指向单个数值的指针,则count = 1;如果value是指向数组的指针,则count是数组的长度。 |
3987
3988**返回:**
3989
3990返回操作是否成功,出错时返回对应的错误码。
3991
3992**参见:**
3993
3994[OH_VObject](_o_h___v_object.md).
3995
3996
3997### putNull
3998
3999```
4000int(*putNull) (OH_VBucket *bucket, const char *field)
4001```
4002
4003**描述**
4004
4005将NULL值放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。
4006
4007**起始版本:** 10
4008
4009**参数:**
4010
4011| 名称 | 描述 |
4012| -------- | -------- |
4013| bucket | 表示指向[OH_VBucket](_o_h___v_bucket.md)实例的指针。 |
4014| field | 数据库表中的列名。 |
4015
4016**返回:**
4017
4018返回操作是否成功,出错时返回对应的错误码。
4019
4020**参见:**
4021
4022[OH_VBucket](_o_h___v_bucket.md).
4023
4024
4025### putReal
4026
4027```
4028int(*putReal) (OH_VBucket *bucket, const char *field, double value)
4029```
4030
4031**描述**
4032
4033将double值放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。
4034
4035**起始版本:** 10
4036
4037**参数:**
4038
4039| 名称 | 描述 |
4040| -------- | -------- |
4041| bucket | 表示指向[OH_VBucket](_o_h___v_bucket.md)实例的指针。 |
4042| field | 数据库表中的列名。 |
4043| value | 数据库表中指定列名对应的值。 |
4044
4045**返回:**
4046
4047返回操作是否成功,出错时返回对应的错误码。
4048
4049**参见:**
4050
4051[OH_VBucket](_o_h___v_bucket.md).
4052
4053
4054### putText [1/2]
4055
4056```
4057int(*putText) (OH_VBucket *bucket, const char *field, const char *value)
4058```
4059
4060**描述**
4061
4062将char\*值放入给定列名的[OH_VBucket](_o_h___v_bucket.md)对象中。
4063
4064**起始版本:** 10
4065
4066**参数:**
4067
4068| 名称 | 描述 |
4069| -------- | -------- |
4070| bucket | 表示指向[OH_VBucket](_o_h___v_bucket.md)实例的指针。 |
4071| field | 数据库表中的列名。 |
4072| value | 数据库表中指定列名对应的值。 |
4073
4074**返回:**
4075
4076返回操作是否成功,出错时返回对应的错误码。
4077
4078**参见:**
4079
4080[OH_VBucket](_o_h___v_bucket.md).
4081
4082
4083### putText [2/2]
4084
4085```
4086int(*putText) (OH_VObject *valueObject, const char *value)
4087```
4088
4089**描述**
4090
4091将char \*类型的字符数组转换为[OH_VObject](_o_h___v_object.md)类型的值。
4092
4093**起始版本:** 10
4094
4095**参数:**
4096
4097| 名称 | 描述 |
4098| -------- | -------- |
4099| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针。 |
4100| value | 表示字符数组参数。 |
4101
4102**返回:**
4103
4104返回操作是否成功,出错时返回对应的错误码。
4105
4106**参见:**
4107
4108[OH_VObject](_o_h___v_object.md).
4109
4110
4111### putTexts
4112
4113```
4114int(*putTexts) (OH_VObject *valueObject, const char **value, uint32_t count)
4115```
4116
4117**描述**
4118
4119将char \*类型的字符串数组转换为[OH_VObject](_o_h___v_object.md)类型的值。
4120
4121**起始版本:** 10
4122
4123**参数:**
4124
4125| 名称 | 描述 |
4126| -------- | -------- |
4127| valueObject | 表示指向[OH_VObject](_o_h___v_object.md)实例的指针。 |
4128| value | 表示字符串数组参数。 |
4129| count | 表示字符串数组参数value的长度。 |
4130
4131**返回:**
4132
4133返回操作是否成功,出错时返回对应的错误码。
4134
4135**参见:**
4136
4137[OH_VObject](_o_h___v_object.md).
4138
4139
4140### real
4141
4142```
4143double Rdb_KeyInfo::Rdb_KeyData::real
4144```
4145
4146**描述**
4147
4148存放double类型的数据。
4149
4150
4151### remained
4152
4153```
4154int Rdb_Statistic::remained
4155```
4156
4157**描述**
4158
4159表示数据库表中端云同步剩余未执行的行数。
4160
4161
4162### schedule
4163
4164```
4165int Rdb_ProgressDetails::schedule
4166```
4167
4168**描述**
4169
4170表示端云同步过程。
4171
4172
4173### securityLevel
4174
4175```
4176int OH_Rdb_Config::securityLevel
4177```
4178
4179**描述**
4180
4181设置数据库安全级别[OH_Rdb_SecurityLevel](#oh_rdb_securitylevel)。
4182
4183
4184### selfSize
4185
4186```
4187int OH_Rdb_Config::selfSize
4188```
4189
4190**描述**
4191
4192该结构体的大小。
4193
4194
4195### storeName
4196
4197```
4198const char* OH_Rdb_Config::storeName
4199```
4200
4201**描述**
4202
4203数据库名称。
4204
4205
4206### successful
4207
4208```
4209int Rdb_Statistic::successful
4210```
4211
4212**描述**
4213
4214表示数据库表中端云同步成功的行数。
4215
4216
4217### table
4218
4219```
4220const char* Rdb_TableDetails::table
4221```
4222
4223**描述**
4224
4225数据库表名
4226
4227
4228### tableLength
4229
4230```
4231int32_t Rdb_ProgressDetails::tableLength
4232```
4233
4234**描述**
4235
4236表示端云同步的表的数量
4237
4238
4239### tableName
4240
4241```
4242const char* Rdb_ChangeInfo::tableName
4243```
4244
4245**描述**
4246
4247表示发生变化的表的名称。
4248
4249
4250### text
4251
4252```
4253const char* Rdb_KeyInfo::Rdb_KeyData::text
4254```
4255
4256**描述**
4257
4258存放char \*类型的数据。
4259
4260
4261### total
4262
4263```
4264int Rdb_Statistic::total
4265```
4266
4267**描述**
4268
4269表示数据库表中需要端云同步的总行数。
4270
4271
4272### type
4273
4274```
4275int Rdb_KeyInfo::type
4276```
4277
4278**描述**
4279
4280表示主键的类型[OH_ColumnType](#oh_columntype)。
4281
4282
4283### updated
4284
4285```
4286Rdb_KeyInfo Rdb_ChangeInfo::updated
4287```
4288
4289**描述**
4290
4291记录更新数据的位置,如果该表的主键是string类型,该值是主键的值,否则该值表示更新数据的行号。
4292
4293
4294### upload
4295
4296```
4297Rdb_Statistic Rdb_TableDetails::upload
4298```
4299
4300**描述**
4301
4302表示数据库表中端云同步上传过程的统计信息。
4303
4304
4305### version [1/3]
4306
4307```
4308int Rdb_DistributedConfig::version
4309```
4310
4311**描述**
4312
4313用于唯一标识Rdb_DistributedConfig结构的版本。
4314
4315
4316### version [2/3]
4317
4318```
4319int Rdb_ChangeInfo::version
4320```
4321
4322**描述**
4323
4324用于唯一标识Rdb_DistributedConfig结构的版本。
4325
4326
4327### version [3/3]
4328
4329```
4330int Rdb_ProgressDetails::version
4331```
4332
4333**描述**
4334
4335用于唯一标识OH_TableDetails结构的版本。