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) 1 | 描述[Rdb_DistributedConfig](_rdb___distributed_config.md)的版本。 | 55| [DISTRIBUTED_CHANGE_INFO_VERSION](#distributed_change_info_version) 1 | 描述[Rdb_ChangeInfo](_rdb___change_info.md)的版本。 | 56| [DISTRIBUTED_PROGRESS_DETAIL_VERSION](#distributed_progress_detail_version) 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语句中的“>”。 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语句中的“>=”。 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语句中的“<”。 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语句中的“<=”。 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结构的版本。