1# relational_store.h 2<!--Kit: ArkData--> 3<!--Subsystem: DistributedDataManager--> 4<!--Owner: @baijidong--> 5<!--Designer: @widecode; @htt1997--> 6<!--Tester: @yippo; @logic42--> 7<!--Adviser: @ge-yafang--> 8 9## 概述 10 11提供管理关系数据库(RDB)方法的接口,未标注支持向量数据库的接口仅支持关系型数据库。 12 13**引用文件:** <database/rdb/relational_store.h> 14 15**库:** libnative_rdb_ndk.z.so 16 17**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 18 19**起始版本:** 10 20 21**相关模块:** [RDB](capi-rdb.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28|---------------------------------------------------------| -- |-------------------------------------------------------------------------| 29| [OH_Rdb_Config](capi-rdb-oh-rdb-config.md) | - | 管理关系数据库配置。 | 30| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) | OH_Rdb_Store | 表示数据库类型。 | 31| [Rdb_DistributedConfig](capi-rdb-rdb-distributedconfig.md) | Rdb_DistributedConfig | 记录表的分布式配置信息。 | 32| [Rdb_KeyInfo](capi-rdb-rdb-keyinfo.md) | Rdb_KeyInfo | 描述发生变化的行的主键或者行号。 | 33| [Rdb_KeyData](capi-rdb-rdb-keydata.md) | - | 存放变化的具体数据。 | 34| [Rdb_ChangeInfo](capi-rdb-rdb-changeinfo.md) | Rdb_ChangeInfo | 记录端云同步过程详情。 | 35| [Rdb_SubscribeCallback](capi-rdb-rdb-subscribecallback.md) | Rdb_SubscribeCallback | 表示回调函数。 | 36| [Rdb_DataObserver](capi-rdb-rdb-dataobserver.md) | Rdb_DataObserver | 表示数据观察者。 | 37| [Rdb_Statistic](capi-rdb-rdb-statistic.md) | Rdb_Statistic | 描述数据库表的端云同步过程的统计信息。 | 38| [Rdb_TableDetails](capi-rdb-rdb-tabledetails.md) | Rdb_TableDetails | 描述数据库表执行端云同步任务上传和下载的统计信息。 | 39| [Rdb_ProgressDetails](capi-rdb-rdb-progressdetails.md) | Rdb_ProgressDetails | 描述数据库整体执行端云同步任务上传和下载的统计信息。 | 40| [Rdb_ProgressObserver](capi-rdb-rdb-progressobserver.md) | Rdb_ProgressObserver | 端云同步进度观察者。 | 41| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) | OH_Rdb_ConfigV2 | 管理关系数据库配置,与[OH_Rdb_Config](capi-rdb-oh-rdb-config.md)的区别是该结构体成员变量不对外暴露,使用一系列方法配置该结构体的属性,支持向量数据库。 | 42 43### 枚举 44 45| 名称 | typedef关键字 | 描述 | 46| -- | -- | -- | 47| [OH_Rdb_SecurityLevel](#oh_rdb_securitylevel) | OH_Rdb_SecurityLevel | 数据库的安全级别枚举。 | 48| [Rdb_SecurityArea](#rdb_securityarea) | Rdb_SecurityArea | 描述数据库的安全区域等级。 | 49| [Rdb_DBType](#rdb_dbtype) | Rdb_DBType | 描述数据库的内核类型。 | 50| [Rdb_Tokenizer](#rdb_tokenizer) | Rdb_Tokenizer | 描述数据库的分词器类型。 | 51| [Rdb_DistributedType](#rdb_distributedtype) | Rdb_DistributedType | 描述表的分布式类型的枚举。 | 52| [Rdb_ChangeType](#rdb_changetype) | Rdb_ChangeType | 描述数据变更类型。 | 53| [Rdb_SubscribeType](#rdb_subscribetype) | Rdb_SubscribeType | 描述订阅类型。 | 54| [Rdb_SyncMode](#rdb_syncmode) | Rdb_SyncMode | 表示数据库的同步模式 | 55| [Rdb_Progress](#rdb_progress) | Rdb_Progress | 描述端云同步过程。 | 56| [Rdb_ProgressCode](#rdb_progresscode) | Rdb_ProgressCode | 表示端云同步过程的状态。 | 57 58### 函数 59 60| 名称 | typedef关键字 | 描述 | 61| -- | -- | -- | 62| [OH_Rdb_ConfigV2 *OH_Rdb_CreateConfig()](#oh_rdb_createconfig) | - | 创建一个[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)实例,并返回指向该实例的指针。 | 63| [int OH_Rdb_DestroyConfig(OH_Rdb_ConfigV2 *config)](#oh_rdb_destroyconfig) | - | 销毁由[OH_Rdb_CreateConfig](capi-relational-store-h.md#oh_rdb_createconfig)创建的[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象。 | 64| [int OH_Rdb_SetDatabaseDir(OH_Rdb_ConfigV2 *config, const char *databaseDir)](#oh_rdb_setdatabasedir) | - | 给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库文件路径。 | 65| [int OH_Rdb_SetStoreName(OH_Rdb_ConfigV2 *config, const char *storeName)](#oh_rdb_setstorename) | - | 给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库名称。 | 66| [int OH_Rdb_SetBundleName(OH_Rdb_ConfigV2 *config, const char *bundleName)](#oh_rdb_setbundlename) | - | 给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置应用包名。 | 67| [int OH_Rdb_SetModuleName(OH_Rdb_ConfigV2 *config, const char *moduleName)](#oh_rdb_setmodulename) | - | 给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置应用模块名。 | 68| [int OH_Rdb_SetEncrypted(OH_Rdb_ConfigV2 *config, bool isEncrypted)](#oh_rdb_setencrypted) | - | 给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库是否加密。 | 69| [int OH_Rdb_SetSecurityLevel(OH_Rdb_ConfigV2 *config, int securityLevel)](#oh_rdb_setsecuritylevel) | - | 给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库安全级别[OH_Rdb_SecurityLevel](capi-relational-store-h.md#oh_rdb_securitylevel)。 | 70| [int OH_Rdb_SetArea(OH_Rdb_ConfigV2 *config, int area)](#oh_rdb_setarea) | - | 给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库安全区域等级[Rdb_SecurityArea](capi-relational-store-h.md#rdb_securityarea)。 | 71| [int OH_Rdb_SetDbType(OH_Rdb_ConfigV2 *config, int dbType)](#oh_rdb_setdbtype) | - | 给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库类型[Rdb_DBType](capi-relational-store-h.md#rdb_dbtype)。 | 72| [int OH_Rdb_SetCustomDir(OH_Rdb_ConfigV2 *config, const char *customDir)](#oh_rdb_setcustomdir) | - | 设置数据库的自定义目录。 | 73| [int OH_Rdb_SetReadOnly(OH_Rdb_ConfigV2 *config, bool readOnly)](#oh_rdb_setreadonly) | - | 设置关系型数据库是否为只读模式。 | 74| [int OH_Rdb_SetPlugins(OH_Rdb_ConfigV2 *config, const char **plugins, int32_t length)](#oh_rdb_setplugins) | - | 设置具有特定功能(如全文检索)的动态库。 | 75| [int OH_Rdb_SetCryptoParam(OH_Rdb_ConfigV2 *config, const OH_Rdb_CryptoParam *cryptoParam)](#oh_rdb_setcryptoparam) | - | 设置自定义加密参数。 | 76| [int OH_Rdb_IsTokenizerSupported(Rdb_Tokenizer tokenizer, bool *isSupported)](#oh_rdb_istokenizersupported) | - | 判断当前平台是否支持传入的分词器。 | 77| [int OH_Rdb_SetTokenizer(OH_Rdb_ConfigV2 *config, Rdb_Tokenizer tokenizer)](#oh_rdb_settokenizer) | - | 给指定的数据库文件配置设置分词器类型。 | 78| [int OH_Rdb_SetPersistent(OH_Rdb_ConfigV2 *config, bool isPersistent)](#oh_rdb_setpersistent) | - | 指定数据库是否需要持久化。 | 79| [const int *OH_Rdb_GetSupportedDbType(int *typeCount)](#oh_rdb_getsupporteddbtype) | - | 获得支持的数据库类型[Rdb_DBType](capi-relational-store-h.md#rdb_dbtype)。 | 80| [OH_VObject *OH_Rdb_CreateValueObject()](#oh_rdb_createvalueobject) | - | 创建[OH_VObject](capi-rdb-oh-vobject.md)实例。 | 81| [OH_VBucket *OH_Rdb_CreateValuesBucket()](#oh_rdb_createvaluesbucket) | - | 创建[OH_VBucket](capi-rdb-oh-vbucket.md)实例。 | 82| [OH_Predicates *OH_Rdb_CreatePredicates(const char *table)](#oh_rdb_createpredicates) | - | 创建[OH_Predicates](capi-rdb-oh-predicates.md)实例。 | 83| [OH_Rdb_Store *OH_Rdb_GetOrOpen(const OH_Rdb_Config *config, int *errCode)](#oh_rdb_getoropen) | - | 获得一个相关的[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例,操作关系型数据库。 | 84| [OH_Rdb_Store *OH_Rdb_CreateOrOpen(const OH_Rdb_ConfigV2 *config, int *errCode)](#oh_rdb_createoropen) | - | 使用指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),获得一个对应的[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例,用来操作关系型数据库。 | 85| [int OH_Rdb_CloseStore(OH_Rdb_Store *store)](#oh_rdb_closestore) | - | 销毁[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)对象,并回收该对象占用的内存。 | 86| [int OH_Rdb_DeleteStore(const OH_Rdb_Config *config)](#oh_rdb_deletestore) | - | 使用指定的数据库文件配置删除数据库。 | 87| [int OH_Rdb_DeleteStoreV2(const OH_Rdb_ConfigV2 *config)](#oh_rdb_deletestorev2) | - | 使用指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)删除数据库。<br>当使用向量数据库时,在调用接口前,应当确保向量数据库已经打开的OH_Rdb_Store和OH_Cursor均已成功关闭。 | 88| [int OH_Rdb_Insert(OH_Rdb_Store *store, const char *table, OH_VBucket *valuesBucket)](#oh_rdb_insert) | - | 向目标表中插入一行数据。 | 89| [int OH_Rdb_InsertWithConflictResolution(OH_Rdb_Store *store, const char *table, OH_VBucket *row,Rdb_ConflictResolution resolution, int64_t *rowId)](#oh_rdb_insertwithconflictresolution) | - | 向目标表中插入一行数据,并支持冲突解决。 | 90| [int OH_Rdb_BatchInsert(OH_Rdb_Store *store, const char *table,const OH_Data_VBuckets *rows, Rdb_ConflictResolution resolution, int64_t *changes)](#oh_rdb_batchinsert) | - | 将一批数据插入到目标表中。 | 91| [int OH_Rdb_Update(OH_Rdb_Store *store, OH_VBucket *valuesBucket, OH_Predicates *predicates)](#oh_rdb_update) | - | 根据指定的条件更新数据库中的数据。 | 92| [int OH_Rdb_UpdateWithConflictResolution(OH_Rdb_Store *store, OH_VBucket *row, OH_Predicates *predicates,Rdb_ConflictResolution resolution, int64_t *changes)](#oh_rdb_updatewithconflictresolution) | - | 根据指定条件更新数据库中的数据,并支持冲突解决。 | 93| [int OH_Rdb_Delete(OH_Rdb_Store *store, OH_Predicates *predicates)](#oh_rdb_delete) | - | 根据指定的条件删除数据库中的数据。 | 94| [OH_Cursor *OH_Rdb_Query(OH_Rdb_Store *store, OH_Predicates *predicates, const char *const *columnNames, int length)](#oh_rdb_query) | - | 根据指定条件查询数据库中的数据 | 95| [int OH_Rdb_Execute(OH_Rdb_Store *store, const char *sql)](#oh_rdb_execute) | - | 执行无返回值的SQL语句。 | 96| [int OH_Rdb_ExecuteV2(OH_Rdb_Store *store, const char *sql, const OH_Data_Values *args, OH_Data_Value **result)](#oh_rdb_executev2) | - | 执行有返回值的SQL语句,支持向量数据库。 | 97| [int OH_Rdb_ExecuteByTrxId(OH_Rdb_Store *store, int64_t trxId, const char *sql)](#oh_rdb_executebytrxid) | - | 使用指定的事务ID执行无返回值的SQL语句,仅支持向量数据库。 | 98| [OH_Cursor *OH_Rdb_ExecuteQuery(OH_Rdb_Store *store, const char *sql)](#oh_rdb_executequery) | - | 根据指定SQL语句查询数据库中的数据,支持向量数据库。 | 99| [OH_Cursor *OH_Rdb_ExecuteQueryV2(OH_Rdb_Store *store, const char *sql, const OH_Data_Values *args)](#oh_rdb_executequeryv2) | - | 根据指定SQL语句查询数据库中的数据,支持向量数据库。 | 100| [int OH_Rdb_BeginTransaction(OH_Rdb_Store *store)](#oh_rdb_begintransaction) | - | 在开始执行SQL语句之前,开始事务。 | 101| [int OH_Rdb_RollBack(OH_Rdb_Store *store)](#oh_rdb_rollback) | - | 回滚已经执行的SQL语句。 | 102| [int OH_Rdb_Commit(OH_Rdb_Store *store)](#oh_rdb_commit) | - | 提交已执行的SQL语句 | 103| [int OH_Rdb_BeginTransWithTrxId(OH_Rdb_Store *store, int64_t *trxId)](#oh_rdb_begintranswithtrxid) | - | 在开始执行SQL语句之前,开始事务,并获得该事务的ID,仅支持向量数据库。 | 104| [int OH_Rdb_RollBackByTrxId(OH_Rdb_Store *store, int64_t trxId)](#oh_rdb_rollbackbytrxid) | - | 使用指定的事务ID, 回滚已经执行的SQL语句,仅支持向量数据库。 | 105| [int OH_Rdb_CommitByTrxId(OH_Rdb_Store *store, int64_t trxId)](#oh_rdb_commitbytrxid) | - | 使用指定的事务ID, 提交已经执行的SQL语句,仅支持向量数据库。 | 106| [int OH_Rdb_Backup(OH_Rdb_Store *store, const char *databasePath)](#oh_rdb_backup) | - | 以指定路径备份数据库,支持向量数据库。 | 107| [int OH_Rdb_Restore(OH_Rdb_Store *store, const char *databasePath)](#oh_rdb_restore) | - | 从指定的数据库备份文件恢复数据库,支持向量数据库。 | 108| [int OH_Rdb_GetVersion(OH_Rdb_Store *store, int *version)](#oh_rdb_getversion) | - | 获取数据库版本。 | 109| [int OH_Rdb_SetVersion(OH_Rdb_Store *store, int version)](#oh_rdb_setversion) | - | 设置数据库版本。 | 110| [int OH_Rdb_SetDistributedTables(OH_Rdb_Store *store, const char *tables[], uint32_t count, Rdb_DistributedType type,const Rdb_DistributedConfig *config)](#oh_rdb_setdistributedtables) | - | 设置分布式数据库表。 | 111| [OH_Cursor *OH_Rdb_FindModifyTime(OH_Rdb_Store *store, const char *tableName, const char *columnName,OH_VObject *values)](#oh_rdb_findmodifytime) | - | 获取数据库表中数据的最后修改时间。 | 112| [typedef void (\*Rdb_BriefObserver)(void *context, const char *values[], uint32_t count)](#rdb_briefobserver) | Rdb_BriefObserver | 端云数据更改事件的回调函数。 | 113| [typedef void (\*Rdb_DetailsObserver)(void *context, const Rdb_ChangeInfo **changeInfo, uint32_t count)](#rdb_detailsobserver) | Rdb_DetailsObserver | 端云数据更改事件的细节的回调函数。 | 114| [int OH_Rdb_Subscribe(OH_Rdb_Store *store, Rdb_SubscribeType type, const Rdb_DataObserver *observer)](#oh_rdb_subscribe) | - | 为数据库注册观察者。当分布式数据库或本地数据库中的数据发生更改时,将调用回调。 | 115| [int OH_Rdb_Unsubscribe(OH_Rdb_Store *store, Rdb_SubscribeType type, const Rdb_DataObserver *observer)](#oh_rdb_unsubscribe) | - | 从数据库中删除指定类型的指定观察者。 | 116| [Rdb_TableDetails *OH_Rdb_GetTableDetails(Rdb_ProgressDetails *progress, int32_t version)](#oh_rdb_gettabledetails) | - | 从端云同步任务的统计信息中获取数据库表的统计信息。 | 117| [typedef void (\*Rdb_ProgressCallback)(void *context, Rdb_ProgressDetails *progressDetails)](#rdb_progresscallback) | Rdb_ProgressCallback | 端云同步进度的回调函数。 | 118| [typedef void (\*Rdb_SyncCallback)(Rdb_ProgressDetails *progressDetails)](#rdb_synccallback) | Rdb_SyncCallback | 数据库端云同步的回调函数。 | 119| [int OH_Rdb_CloudSync(OH_Rdb_Store *store, Rdb_SyncMode mode, const char *tables[], uint32_t count,const Rdb_ProgressObserver *observer)](#oh_rdb_cloudsync) | - | 进行端云同步。 | 120| [int OH_Rdb_SubscribeAutoSyncProgress(OH_Rdb_Store *store, const Rdb_ProgressObserver *observer)](#oh_rdb_subscribeautosyncprogress) | - | 订阅RDB存储的自动同步进度。<br>当收到自动同步进度的通知时,将调用回调。 | 121| [int OH_Rdb_UnsubscribeAutoSyncProgress(OH_Rdb_Store *store, const Rdb_ProgressObserver *observer)](#oh_rdb_unsubscribeautosyncprogress) | - | 取消订阅RDB存储的自动同步进程。 | 122| [int OH_Rdb_LockRow(OH_Rdb_Store *store, OH_Predicates *predicates)](#oh_rdb_lockrow) | - | 根据指定的条件锁定数据库中的数据,锁定数据不执行端云同步。 | 123| [int OH_Rdb_UnlockRow(OH_Rdb_Store *store, OH_Predicates *predicates)](#oh_rdb_unlockrow) | - | 根据指定的条件锁解锁数据库中的数据。 | 124| [OH_Cursor *OH_Rdb_QueryLockedRow(OH_Rdb_Store *store, OH_Predicates *predicates, const char *const *columnNames, int length)](#oh_rdb_querylockedrow) | - | 根据指定条件查询数据库中锁定的数据。 | 125| [int OH_Rdb_CreateTransaction(OH_Rdb_Store *store, const OH_RDB_TransOptions *options, OH_Rdb_Transaction **trans)](#oh_rdb_createtransaction) | - | 创建一个事务对象。 | 126| [int OH_Rdb_Attach(OH_Rdb_Store *store, const OH_Rdb_ConfigV2 *config, const char *attachName, int64_t waitTime,size_t *attachedNumber)](#oh_rdb_attach) | - | 将数据库文件附加到当前连接的数据库。 | 127| [int OH_Rdb_Detach(OH_Rdb_Store *store, const char *attachName, int64_t waitTime, size_t *attachedNumber)](#oh_rdb_detach) | - | 从当前数据库中分离指定的数据库。 | 128| [int OH_Rdb_SetLocale(OH_Rdb_Store *store, const char *locale)](#oh_rdb_setlocale) | - | 支持不同语言的排序规则。 | 129| [int OH_Rdb_SetSemanticIndex(OH_Rdb_ConfigV2 *config, bool enabled)](#oh_rdb_setsemanticindex) | - | 开启或关闭基于语义索引的知识加工。 | 130 131## 枚举类型说明 132 133### OH_Rdb_SecurityLevel 134 135``` 136enum OH_Rdb_SecurityLevel 137``` 138 139**描述** 140 141数据库的安全级别枚举。 142 143**起始版本:** 10 144 145| 枚举项 | 描述 | 146| -- | -- | 147| S1 = 1 | S1: 表示数据库的安全级别为低级别。当数据泄露时会产生较低影响。 | 148| S2 | S2: 表示数据库的安全级别为中级别。当数据泄露时会产生较大影响。 | 149| S3 | S3: 表示数据库的安全级别为高级别。当数据泄露时会产生重大影响。 | 150| S4 | S4: 表示数据库的安全级别为关键级别。当数据泄露时会产生严重影响。 | 151 152### Rdb_SecurityArea 153 154``` 155enum Rdb_SecurityArea 156``` 157 158**描述** 159 160描述数据库的安全区域等级。 161 162**起始版本:** 11 163 164| 枚举项 | 描述 | 165| -- | -- | 166| RDB_SECURITY_AREA_EL1 = 1 | 安全区域等级为1。 | 167| RDB_SECURITY_AREA_EL2 | 安全区域等级为2。 | 168| RDB_SECURITY_AREA_EL3 | 安全区域等级为3。 | 169| RDB_SECURITY_AREA_EL4 | 安全区域等级为4。 | 170| RDB_SECURITY_AREA_EL5 | 安全区域等级为5。<br>**起始版本:** 12 | 171 172### Rdb_DBType 173 174``` 175enum Rdb_DBType 176``` 177 178**描述** 179 180描述数据库的内核类型。 181 182**起始版本:** 14 183 184| 枚举项 | 描述 | 185| -- | -- | 186| RDB_SQLITE = 1 | 表示使用sqlite作为数据库内核。 | 187| RDB_CAYLEY = 2 | 表示使用凯莱数据库作为数据库内核。 | 188| DBTYPE_BUTT = 64 | 表示内核类型枚举值允许取值的最大值,这是一个非法值。 | 189 190### Rdb_Tokenizer 191 192``` 193enum Rdb_Tokenizer 194``` 195 196**描述** 197 198描述数据库的分词器类型。 199 200**起始版本:** 17 201 202| 枚举项 | 描述 | 203| -- | -- | 204| RDB_NONE_TOKENIZER = 1 | 表示不使用分词器。 | 205| RDB_ICU_TOKENIZER = 2 | 表示使用ICU分词器。 | 206| RDB_CUSTOM_TOKENIZER = 3 | 表示使用CUSTOM分词器。 <br>**起始版本:** 18 | 207 208### Rdb_DistributedType 209 210``` 211enum Rdb_DistributedType 212``` 213 214**描述** 215 216描述表的分布式类型的枚举。 217 218**起始版本:** 11 219 220| 枚举项 | 描述 | 221| -- | -- | 222| RDB_DISTRIBUTED_CLOUD | 表示在设备和云端之间分布式的数据库表。 | 223 224### Rdb_ChangeType 225 226``` 227enum Rdb_ChangeType 228``` 229 230**描述** 231 232描述数据变更类型。 233 234**起始版本:** 11 235 236| 枚举项 | 描述 | 237| -- | -- | 238| RDB_DATA_CHANGE | 表示是数据发生变更。 | 239| RDB_ASSET_CHANGE | 表示是资产附件发生了变更。 | 240 241### Rdb_SubscribeType 242 243``` 244enum Rdb_SubscribeType 245``` 246 247**描述** 248 249描述订阅类型。 250 251**起始版本:** 11 252 253| 枚举项 | 描述 | 254| -- | -- | 255| RDB_SUBSCRIBE_TYPE_CLOUD | 订阅云端数据更改。 | 256| RDB_SUBSCRIBE_TYPE_CLOUD_DETAILS | 订阅云端数据更改详情。 | 257| RDB_SUBSCRIBE_TYPE_LOCAL_DETAILS | 订阅本地数据更改详情。 | 258 259### Rdb_SyncMode 260 261``` 262enum Rdb_SyncMode 263``` 264 265**描述** 266 267表示数据库的同步模式 268 269**起始版本:** 11 270 271| 枚举项 | 描述 | 272| -- | -- | 273| RDB_SYNC_MODE_TIME_FIRST | 表示数据从修改时间较近的一端同步到修改时间较远的一端。 | 274| RDB_SYNC_MODE_NATIVE_FIRST | 表示数据从本地设备同步到云端。 | 275| RDB_SYNC_MODE_CLOUD_FIRST | 表示数据从云端同步到本地设备。 | 276 277### Rdb_Progress 278 279``` 280enum Rdb_Progress 281``` 282 283**描述** 284 285| 枚举项 | 描述 | 286| -- | -- | 287| RDB_SYNC_BEGIN | 表示端云同步过程开始。 | 288| RDB_SYNC_IN_PROGRESS | 表示正在端云同步过程中。 | 289| RDB_SYNC_FINISH | 表示端云同步过程已完成。 | 290 291### Rdb_ProgressCode 292 293``` 294enum Rdb_ProgressCode 295``` 296 297**描述** 298 299| 枚举项 | 描述 | 300| -- | -- | 301| RDB_SUCCESS | 表示端云同步过程成功。 | 302| RDB_UNKNOWN_ERROR | 表示端云同步过程遇到未知错误。 | 303| RDB_NETWORK_ERROR | 表示端云同步过程遇到网络错误。 | 304| RDB_CLOUD_DISABLED | 表示云端不可用。 | 305| RDB_LOCKED_BY_OTHERS | 表示有其他设备正在端云同步,本设备无法进行端云同步。 | 306| RDB_RECORD_LIMIT_EXCEEDED | 表示本次端云同步需要同步的条目或大小超出最大值。由云端配置最大值。 | 307| RDB_NO_SPACE_FOR_ASSET | 表示云空间剩余空间小于待同步的资产大小。 | 308 309 310## 函数说明 311 312### OH_Rdb_SetSemanticIndex() 313 314``` 315int OH_Rdb_SetSemanticIndex(OH_Rdb_ConfigV2 *config, bool enabled) 316``` 317 318**描述** 319 320开启或关闭基于语义索引的知识加工。 321 322**起始版本:** 20 323 324**参数:** 325 326| 参数项 | 描述 | 327| -- | -- | 328| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)实例的指针。 | 329| bool enabled | 开启或关闭基于语义索引的知识加工能力标志。<br>true表示开启。false表示关闭。 | 330 331**返回:** 332 333| 类型 | 说明 | 334| -- | -- | 335| int | 返回执行的错误码。错误码定义详见[OH_Rdb_ErrCode](capi-relational-store-error-code-h.md#oh_rdb_errcode)。<br>若返回RDB_OK,表示指向成功。<br>若返回RDB_E_INVALID_ARGS,表示传入了无效参数。 | 336 337### OH_Rdb_CreateConfig() 338 339``` 340OH_Rdb_ConfigV2 *OH_Rdb_CreateConfig() 341``` 342 343**描述** 344 345创建一个[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)实例,并返回指向该实例的指针。 346 347**起始版本:** 14 348 349**返回:** 350 351| 类型 | 说明 | 352| -- | -- | 353| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) | 返回一个指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)实例的指针。 | 354 355**参考:** 356 357OH_Rdb_ConfigV2 358 359### OH_Rdb_DestroyConfig() 360 361``` 362int OH_Rdb_DestroyConfig(OH_Rdb_ConfigV2 *config) 363``` 364 365**描述** 366 367销毁由[OH_Rdb_CreateConfig](capi-relational-store-h.md#oh_rdb_createconfig)创建的[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象。 368 369**起始版本:** 14 370 371 372**参数:** 373 374| 参数项 | 描述 | 375| -- | -- | 376| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 377 378**返回:** 379 380| 类型 | 说明 | 381| -- | -- | 382| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 383 384### OH_Rdb_SetDatabaseDir() 385 386``` 387int OH_Rdb_SetDatabaseDir(OH_Rdb_ConfigV2 *config, const char *databaseDir) 388``` 389 390**描述** 391 392给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库文件路径。 393 394**起始版本:** 14 395 396 397**参数:** 398 399| 参数项 | 描述 | 400| -- | -- | 401| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 402| const char *dataBaseDir | 表示数据库文件路径。包含数据库名称在内的全路径长度不超过1024个字符。 | 403 404**返回:** 405 406| 类型 | 说明 | 407| -- | -- | 408| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 409 410### OH_Rdb_SetStoreName() 411 412``` 413int OH_Rdb_SetStoreName(OH_Rdb_ConfigV2 *config, const char *storeName) 414``` 415 416**描述** 417 418给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库名称。 419 420**起始版本:** 14 421 422 423**参数:** 424 425| 参数项 | 描述 | 426| -- | -- | 427| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 428| const char *storeName | 表示数据库名称。 | 429 430**返回:** 431 432| 类型 | 说明 | 433| -- | -- | 434| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 435 436### OH_Rdb_SetBundleName() 437 438``` 439int OH_Rdb_SetBundleName(OH_Rdb_ConfigV2 *config, const char *bundleName) 440``` 441 442**描述** 443 444给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置应用包名。 445 446**起始版本:** 14 447 448 449**参数:** 450 451| 参数项 | 描述 | 452| -- | -- | 453| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 454| const char *bundleName | 表示数据库应用包名。 | 455 456**返回:** 457 458| 类型 | 说明 | 459| -- | -- | 460| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 461 462### OH_Rdb_SetModuleName() 463 464``` 465int OH_Rdb_SetModuleName(OH_Rdb_ConfigV2 *config, const char *moduleName) 466``` 467 468**描述** 469 470给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置应用模块名。 471 472**起始版本:** 14 473 474 475**参数:** 476 477| 参数项 | 描述 | 478| -- | -- | 479| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 480| const char *moduleName | 表示数据库应用模块名。 | 481 482**返回:** 483 484| 类型 | 说明 | 485| -- | -- | 486| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 487 488### OH_Rdb_SetEncrypted() 489 490``` 491int OH_Rdb_SetEncrypted(OH_Rdb_ConfigV2 *config, bool isEncrypted) 492``` 493 494**描述** 495 496给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库是否加密。 497 498**起始版本:** 14 499 500 501**参数:** 502 503| 参数项 | 描述 | 504| -- | -- | 505| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 506| bool isEncrypted | 表示数据库是否加密。true表示加密,false表示不加密。 | 507 508**返回:** 509 510| 类型 | 说明 | 511| -- | -- | 512| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 513 514### OH_Rdb_SetSecurityLevel() 515 516``` 517int OH_Rdb_SetSecurityLevel(OH_Rdb_ConfigV2 *config, int securityLevel) 518``` 519 520**描述** 521 522给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库安全级别[OH_Rdb_SecurityLevel](capi-relational-store-h.md#oh_rdb_securitylevel)。 523 524**起始版本:** 14 525 526 527**参数:** 528 529| 参数项 | 描述 | 530| -- | -- | 531| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 532| int securityLevel | 表示数据库安全级别[OH_Rdb_SecurityLevel](capi-relational-store-h.md#oh_rdb_securitylevel)。 | 533 534**返回:** 535 536| 类型 | 说明 | 537| -- | -- | 538| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 539 540### OH_Rdb_SetArea() 541 542``` 543int OH_Rdb_SetArea(OH_Rdb_ConfigV2 *config, int area) 544``` 545 546**描述** 547 548给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库安全区域等级[Rdb_SecurityArea](capi-relational-store-h.md#rdb_securityarea)。 549 550**起始版本:** 14 551 552 553**参数:** 554 555| 参数项 | 描述 | 556| -- | -- | 557| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 558| int area | 表示数据库安全区域等级[Rdb_SecurityArea](capi-relational-store-h.md#rdb_securityarea)。 | 559 560**返回:** 561 562| 类型 | 说明 | 563| -- | -- | 564| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 565 566### OH_Rdb_SetDbType() 567 568``` 569int OH_Rdb_SetDbType(OH_Rdb_ConfigV2 *config, int dbType) 570``` 571 572**描述** 573 574给指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),设置数据库类型[Rdb_DBType](capi-relational-store-h.md#rdb_dbtype)。 575 576**起始版本:** 14 577 578 579**参数:** 580 581| 参数项 | 描述 | 582| -- | -- | 583| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 584| int dbType | 表示数据库的数据库类型[Rdb_DBType](capi-relational-store-h.md#rdb_dbtype)。 | 585 586**返回:** 587 588| 类型 | 说明 | 589| -- | -- | 590| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。<br>RDB_E_NOT_SUPPORTED表示不支持当前操作。 | 591 592### OH_Rdb_SetCustomDir() 593 594``` 595int OH_Rdb_SetCustomDir(OH_Rdb_ConfigV2 *config, const char *customDir) 596``` 597 598**描述** 599 600设置数据库的自定义目录。 601 602**起始版本:** 20 603 604 605**参数:** 606 607| 参数项 | 描述 | 608| -- | -- | 609| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示此关系型数据库相关的数据库配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)的指针。 | 610| const char *customDir | 表示数据库的自定义目录,目录长度不能超过128字节。 | 611 612**返回:** 613 614| 类型 | 说明 | 615| -- | -- | 616| int | 返回执行结果。<br>返回RDB_OK表示执行成功。<br>返回RDB_E_INVALID_ARGS表示输入参数无效。 | 617 618### OH_Rdb_SetReadOnly() 619 620``` 621int OH_Rdb_SetReadOnly(OH_Rdb_ConfigV2 *config, bool readOnly) 622``` 623 624**描述** 625 626设置关系型数据库是否为只读模式。 627 628**起始版本:** 20 629 630 631**参数:** 632 633| 参数项 | 描述 | 634| -- | -- | 635| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示此关系型数据库相关的数据库配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)的指针。 | 636| bool readOnly | 表示关系型数据库存储是否为只读模式,true表示设置为只读模式,false表示设置为读写模式。 | 637 638**返回:** 639 640| 类型 | 说明 | 641| -- | -- | 642| int | 返回执行结果。<br>返回RDB_OK表示执行成功。<br>返回RDB_E_INVALID_ARGS表示输入参数无效。 | 643 644### OH_Rdb_SetPlugins() 645 646``` 647int OH_Rdb_SetPlugins(OH_Rdb_ConfigV2 *config, const char **plugins, int32_t length) 648``` 649 650**描述** 651 652设置具有特定功能(如全文检索)的动态库。 653 654**起始版本:** 20 655 656 657**参数:** 658 659| 参数项 | 描述 | 660| -- | -- | 661| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示此关系型数据库相关的数据库配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)的指针。 | 662| const char **plugins | 表示动态库的名称数组。 | 663| int32_t length | 表示插件数组的大小,最大值为16。 | 664 665**返回:** 666 667| 类型 | 说明 | 668| -- | -- | 669| int | 返回执行结果。<br>返回RDB_OK表示执行成功。<br>返回RDB_E_INVALID_ARGS表示输入参数无效。 | 670 671### OH_Rdb_SetCryptoParam() 672 673``` 674int OH_Rdb_SetCryptoParam(OH_Rdb_ConfigV2 *config, const OH_Rdb_CryptoParam *cryptoParam) 675``` 676 677**描述** 678 679设置自定义加密参数。 680 681**起始版本:** 20 682 683 684**参数:** 685 686| 参数项 | 描述 | 687| -- | -- | 688| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示此关系型数据库相关的数据库配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)的指针。 | 689| const [OH_Rdb_CryptoParam](capi-rdb-oh-rdb-cryptoparam.md) *cryptoParam | 表示自定义加密参数。 | 690 691**返回:** 692 693| 类型 | 说明 | 694| -- | -- | 695| int | 返回执行结果。<br>返回RDB_OK表示执行成功。<br>返回RDB_E_INVALID_ARGS表示输入参数无效。 | 696 697### OH_Rdb_IsTokenizerSupported() 698 699``` 700int OH_Rdb_IsTokenizerSupported(Rdb_Tokenizer tokenizer, bool *isSupported) 701``` 702 703**描述** 704 705判断当前平台是否支持传入的分词器。 706 707**起始版本:** 18 708 709 710**参数:** 711 712| 参数项 | 描述 | 713| -- | -- | 714| [Rdb_Tokenizer](#rdb_tokenizer) tokenizer | 要校验是否支持的分词器。 | 715| bool *isSupported | 校验结果的指针,作为出参使用。true表示当前平台支持当前校验的分词器,false表示当前平台不支持当前校验的分词器。 | 716 717**返回:** 718 719| 类型 | 说明 | 720| -- | -- | 721| int | 返回接口操作执行的状态码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 722 723### OH_Rdb_SetTokenizer() 724 725``` 726int OH_Rdb_SetTokenizer(OH_Rdb_ConfigV2 *config, Rdb_Tokenizer tokenizer) 727``` 728 729**描述** 730 731给指定的数据库文件配置设置分词器类型。 732 733**起始版本:** 17 734 735 736**参数:** 737 738| 参数项 | 描述 | 739| -- | -- | 740| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向此RDB存储相关的数据库配置的指针。 | 741| [Rdb_Tokenizer](#rdb_tokenizer) tokenizer | 表示数据库的分词器类型。 | 742 743**返回:** 744 745| 类型 | 说明 | 746| -- | -- | 747| int | 返回接口操作执行的状态码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。<br>RDB_E_NOT_SUPPORTED表示不支持当前操作。 | 748 749### OH_Rdb_SetPersistent() 750 751``` 752int OH_Rdb_SetPersistent(OH_Rdb_ConfigV2 *config, bool isPersistent) 753``` 754 755**描述** 756 757指定数据库是否需要持久化。 758 759**起始版本:** 18 760 761 762**参数:** 763 764| 参数项 | 描述 | 765| -- | -- | 766| [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)实例的指针。<br>指示与此RDB存储相关的数据库的配置。 | 767| bool isPersistent | 指示数据库是否需要持久性。 | 768 769**返回:** 770 771| 类型 | 说明 | 772| -- | -- | 773| int | 返回执行的状态代码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 774 775### OH_Rdb_GetSupportedDbType() 776 777``` 778const int *OH_Rdb_GetSupportedDbType(int *typeCount) 779``` 780 781**描述** 782 783获得支持的数据库类型[Rdb_DBType](capi-relational-store-h.md#rdb_dbtype)。 784 785**起始版本:** 14 786 787 788**参数:** 789 790| 参数项 | 描述 | 791| -- | -- | 792| int *typeCount | 表示支持的数据库类型的数组的长度, 作为出参使用。 | 793 794**返回:** 795 796| 类型 | 说明 | 797|------------| -- | 798| const int * | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 799 800### OH_Rdb_CreateValueObject() 801 802``` 803OH_VObject *OH_Rdb_CreateValueObject() 804``` 805 806**描述** 807 808创建[OH_VObject](capi-rdb-oh-vobject.md)实例。 809 810**起始版本:** 10 811 812**返回:** 813 814| 类型 | 说明 | 815| -- | -- | 816| [OH_VObject](capi-rdb-oh-vobject.md) | 创建成功则返回一个指向[OH_VObject](capi-rdb-oh-vobject.md)结构体实例的指针,否则返回NULL。 | 817 818**参考:** 819 820OH_VObject 821 822### OH_Rdb_CreateValuesBucket() 823 824``` 825OH_VBucket *OH_Rdb_CreateValuesBucket() 826``` 827 828**描述** 829 830创建[OH_VBucket](capi-rdb-oh-vbucket.md)实例。 831 832**起始版本:** 10 833 834**返回:** 835 836| 类型 | 说明 | 837| -- | -- | 838| [OH_VBucket](capi-rdb-oh-vbucket.md) | 创建成功则返回一个指向[OH_VBucket](capi-rdb-oh-vbucket.md)结构体实例的指针,否则返回NULL。 | 839 840**参考:** 841 842OH_VBucket 843 844### OH_Rdb_CreatePredicates() 845 846``` 847OH_Predicates *OH_Rdb_CreatePredicates(const char *table) 848``` 849 850**描述** 851 852创建[OH_Predicates](capi-rdb-oh-predicates.md)实例。 853 854**起始版本:** 10 855 856 857**参数:** 858 859| 参数项 | 描述 | 860| -- | -- | 861| const char *table | 表示数据库表名。 | 862 863**返回:** 864 865| 类型 | 说明 | 866| -- | -- | 867| [OH_Predicates](capi-rdb-oh-predicates.md) | 创建成功则返回一个指向[OH_Predicates](capi-rdb-oh-predicates.md)结构体实例的指针,否则返回NULL。 | 868 869**参考:** 870 871OH_Predicates 872 873### OH_Rdb_GetOrOpen() 874 875``` 876OH_Rdb_Store *OH_Rdb_GetOrOpen(const OH_Rdb_Config *config, int *errCode) 877``` 878 879**描述** 880 881获得一个相关的[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例,操作关系型数据库。 882 883**起始版本:** 10 884 885 886**参数:** 887 888| 参数项 | 描述 | 889| -- | -- | 890| const [OH_Rdb_Config](capi-rdb-oh-rdb-config.md) *config | 表示指向[OH_Rdb_Config](capi-rdb-oh-rdb-config.md)实例的指针,与此RDB存储相关的数据库配置。 | 891| int *errCode | 表示函数执行状态, 作为出参使用。 | 892 893**返回:** 894 895| 类型 | 说明 | 896| -- | -- | 897| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) | 创建成功则返回一个指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)结构体实例的指针,否则返回NULL。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 898 899### OH_Rdb_CreateOrOpen() 900 901``` 902OH_Rdb_Store *OH_Rdb_CreateOrOpen(const OH_Rdb_ConfigV2 *config, int *errCode) 903``` 904 905**描述** 906 907使用指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md),获得一个对应的[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例,用来操作关系型数据库。 908 909**起始版本:** 14 910 911 912**参数:** 913 914| 参数项 | 描述 | 915| -- | -- | 916| const [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)对象的指针,即与此RDB存储相关的数据库配置。 | 917| int *errCode | 表示函数执行状态,作为出参使用。 | 918 919**返回:** 920 921| 类型 | 说明 | 922| -- | -- | 923| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) | 创建成功则返回一个指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)结构体实例的指针,否则返回NULL。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 924 925### OH_Rdb_CloseStore() 926 927``` 928int OH_Rdb_CloseStore(OH_Rdb_Store *store) 929``` 930 931**描述** 932 933销毁[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)对象,并回收该对象占用的内存。 934 935**起始版本:** 10 936 937 938**参数:** 939 940| 参数项 | 描述 | 941| -- | -- | 942| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 943 944**返回:** 945 946| 类型 | 说明 | 947| -- | -- | 948| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 949 950### OH_Rdb_DeleteStore() 951 952``` 953int OH_Rdb_DeleteStore(const OH_Rdb_Config *config) 954``` 955 956**描述** 957 958使用指定的数据库文件配置删除数据库。 959 960**起始版本:** 10 961 962 963**参数:** 964 965| 参数项 | 描述 | 966| -- | -- | 967| const [OH_Rdb_Config](capi-rdb-oh-rdb-config.md) *config | 表示数据库的配置。 | 968 969**返回:** 970 971| 类型 | 说明 | 972| -- | -- | 973| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 974 975### OH_Rdb_DeleteStoreV2() 976 977``` 978int OH_Rdb_DeleteStoreV2(const OH_Rdb_ConfigV2 *config) 979``` 980 981**描述** 982 983使用指定的数据库文件配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)删除数据库。<br>当使用向量数据库时,在调用接口前,应当确保向量数据库已经打开的OH_Rdb_Store和OH_Cursor均已成功关闭。 984 985**起始版本:** 14 986 987 988**参数:** 989 990| 参数项 | 描述 | 991| -- | -- | 992| const [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示数据库的配置。 | 993 994**返回:** 995 996| 类型 | 说明 | 997| -- | -- | 998| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 999 1000### OH_Rdb_Insert() 1001 1002``` 1003int OH_Rdb_Insert(OH_Rdb_Store *store, const char *table, OH_VBucket *valuesBucket) 1004``` 1005 1006**描述** 1007 1008向目标表中插入一行数据。 1009 1010**起始版本:** 10 1011 1012 1013**参数:** 1014 1015| 参数项 | 描述 | 1016| -- | -- | 1017| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1018| const char *table | 表示指定的目标表名。 | 1019| [OH_VBucket](capi-rdb-oh-vbucket.md) *valuesBucket | 表示要插入到表中的数据行[OH_VBucket](capi-rdb-oh-vbucket.md)。 | 1020 1021**返回:** 1022 1023| 类型 | 说明 | 1024| -- | -- | 1025| int | 如果插入成功,返回rowID,否则返回的结果小于0。<br>RDB_ERR表示插入失败。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1026 1027### OH_Rdb_InsertWithConflictResolution() 1028 1029``` 1030int OH_Rdb_InsertWithConflictResolution(OH_Rdb_Store *store, const char *table, OH_VBucket *row,Rdb_ConflictResolution resolution, int64_t *rowId) 1031``` 1032 1033**描述** 1034 1035向目标表中插入一行数据,并支持冲突解决。 1036 1037**起始版本:** 20 1038 1039 1040**参数:** 1041 1042| 参数项 | 描述 | 1043|------------------------------------------------------------------------------------| -- | 1044| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1045| const char *table | 表示目标表的名称。 | 1046| [OH_VBucket](capi-rdb-oh-vbucket.md) *row | 表示要插入到表中的数据。 | 1047| [Rdb_ConflictResolution](capi-oh-rdb-types-h.md#rdb_conflictresolution) resolution | 表示发生冲突时的解决策略。 | 1048| int64_t *rowId | 表示插入成功后返回的行号。 | 1049 1050**返回:** 1051 1052| 类型 | 说明 | 1053| -- | -- | 1054| int | 返回执行结果。<br>返回RDB_OK表示执行成功。<br>返回RDB_E_ERROR表示数据库常见错误。<br>返回RDB_E_INVALID_ARGS表示输入参数无效。<br>返回RDB_E_ALREADY_CLOSED表示数据库已关闭。<br>返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL文件大小超过默认限制。<br>返回RDB_E_SQLITE_FULL表示SQLite错误:数据库已满。<br>返回RDB_E_SQLITE_CORRUPT表示数据库已损坏。<br>返回RDB_E_SQLITE_PERM表示SQLite错误:访问权限被拒绝。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误:数据库文件被锁定。<br>返回RDB_E_SQLITE_LOCKED表示SQLite错误:数据库中的表被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误:数据库内存不足。<br>返回RDB_E_SQLITE_READONLY表示SQLite错误:尝试写入只读数据库。<br>返回RDB_E_SQLITE_IOERR表示SQLite错误:磁盘I/O错误。<br>返回RDB_E_SQLITE_TOO_BIG表示SQLite错误:TEXT或BLOB超出大小限制。<br>返回RDB_E_SQLITE_MISMATCH表示SQLite错误:数据类型不匹配。<br>返回RDB_E_SQLITE_CONSTRAINT表示SQLite错误:违反约束导致操作中止。 | 1055 1056### OH_Rdb_BatchInsert() 1057 1058``` 1059int OH_Rdb_BatchInsert(OH_Rdb_Store *store, const char *table,const OH_Data_VBuckets *rows, Rdb_ConflictResolution resolution, int64_t *changes) 1060``` 1061 1062**描述** 1063 1064将一批数据插入到目标表中。 1065 1066**起始版本:** 18 1067 1068 1069**参数:** 1070 1071| 参数项 | 描述 | 1072|------------------------------------------------------------------------------------| -- | 1073| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1074| const char *tables | 要设置的分布式数据库表表名。 | 1075| const [OH_Data_VBuckets *rows](capi-rdb-oh-data-vbuckets.md) | 表示要插入到表中的一组数据。 | 1076| [Rdb_ConflictResolution](capi-oh-rdb-types-h.md#rdb_conflictresolution) resolution | 表示发生冲突时的解决策略。 | 1077| int64_t *changes | 输出参数,表示插入成功的次数。 | 1078 1079**返回:** 1080 1081| 类型 | 说明 | 1082| -- | -- | 1083| int | 返回执行结果。<br>返回RDB_OK表示成功。<br>返回RDB_E_ERROR表示数据库常见错误。<br>返回RDB_E_INVALID_ARGS表示无效参数。<br>返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。<br>返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL日志文件大小超过默认值。<br>返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。<br>返回RDB_E_SQLITE_CORRUPT表示数据库损坏。<br>返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。<br>返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。<br>返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。<br>返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。<br>返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。<br>返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。<br>返回RDB_E_SQLITE_CONSTRAINT表示SQLite错误码:SQLite约束。 | 1084 1085### OH_Rdb_Update() 1086 1087``` 1088int OH_Rdb_Update(OH_Rdb_Store *store, OH_VBucket *valuesBucket, OH_Predicates *predicates) 1089``` 1090 1091**描述** 1092 1093根据指定的条件更新数据库中的数据。 1094 1095**起始版本:** 10 1096 1097 1098**参数:** 1099 1100| 参数项 | 描述 | 1101| -- | -- | 1102| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1103| [OH_VBucket](capi-rdb-oh-vbucket.md) *valuesBucket | 表示要更新到表中的数据行[OH_VBucket](capi-rdb-oh-vbucket.md)。 | 1104| [OH_Predicates](capi-rdb-oh-predicates.md) *predicates | 表示指向[OH_Predicates](capi-rdb-oh-predicates.md)实例的指针,指定更新条件。 | 1105 1106**返回:** 1107 1108| 类型 | 说明 | 1109| -- | -- | 1110| int | 如果更新成功,返回更新的行数,否则返回的结果小于0。<br>RDB_ERR表示更新失败。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1111 1112### OH_Rdb_UpdateWithConflictResolution() 1113 1114``` 1115int OH_Rdb_UpdateWithConflictResolution(OH_Rdb_Store *store, OH_VBucket *row, OH_Predicates *predicates,Rdb_ConflictResolution resolution, int64_t *changes) 1116``` 1117 1118**描述** 1119 1120根据指定条件更新数据库中的数据,并支持冲突解决。 1121 1122**起始版本:** 20 1123 1124 1125**参数:** 1126 1127| 参数项 | 描述 | 1128|------------------------------------------------------------------------------------| -- | 1129| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1130| [OH_VBucket](capi-rdb-oh-vbucket.md) *row | 表示要更新到表中的数据行。 | 1131| [OH_Predicates](capi-rdb-oh-predicates.md) *predicates | 表示指向[OH_Predicates](capi-rdb-oh-predicates.md)实例的指针,指定更新条件。 | 1132| [Rdb_ConflictResolution](capi-oh-rdb-types-h.md#rdb_conflictresolution) resolution | 表示发生冲突时的解决策略。 | 1133| int64_t *changes | 输出参数,表示成功更新的行数。 | 1134 1135**返回:** 1136 1137| 类型 | 说明 | 1138| -- | -- | 1139| int | 返回执行结果。<br>返回RDB_OK表示执行成功。<br>返回RDB_E_ERROR 表示数据库常见错误。<br>返回RDB_E_INVALID_ARGS表示输入参数无效。<br>返回RDB_E_ALREADY_CLOSED表示数据库已关闭。<br>返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL文件大小超过默认限制。<br>返回RDB_E_SQLITE_FULL表示SQLite错误:数据库已满。<br>返回RDB_E_SQLITE_CORRUPT表示数据库已损坏。<br>返回RDB_E_SQLITE_PERM表示SQLite错误:访问权限被拒绝。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误:数据库文件被锁定。<br>返回RDB_E_SQLITE_LOCKED表示SQLite错误:数据库中的表被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误:数据库内存不足。<br>返回RDB_E_SQLITE_READONLY表示SQLite错误:尝试写入只读数据库。<br>返回RDB_E_SQLITE_IOERR表示SQLite错误:磁盘I/O错误。<br>返回RDB_E_SQLITE_TOO_BIG表示SQLite错误:TEXT或BLOB超出大小限制。<br>返回RDB_E_SQLITE_MISMATCH表示SQLite错误:数据类型不匹配。<br>返回RDB_E_SQLITE_CONSTRAINT表示SQLite错误:违反约束导致操作中止。 | 1140 1141### OH_Rdb_Delete() 1142 1143``` 1144int OH_Rdb_Delete(OH_Rdb_Store *store, OH_Predicates *predicates) 1145``` 1146 1147**描述** 1148 1149根据指定的条件删除数据库中的数据。 1150 1151**起始版本:** 10 1152 1153 1154**参数:** 1155 1156| 参数项 | 描述 | 1157| -- | -- | 1158| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1159| [OH_Predicates](capi-rdb-oh-predicates.md) *predicates | 表示指向[OH_Predicates](capi-rdb-oh-predicates.md)实例的指针,指定删除条件。 | 1160 1161**返回:** 1162 1163| 类型 | 说明 | 1164| -- | -- | 1165| int | 如果删除成功,返回删除的行数;如果失败,则返回的结果小于0。<br>RDB_ERR表示删除失败。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1166 1167### OH_Rdb_Query() 1168 1169``` 1170OH_Cursor *OH_Rdb_Query(OH_Rdb_Store *store, OH_Predicates *predicates, const char *const *columnNames, int length) 1171``` 1172 1173**描述** 1174 1175根据指定条件查询数据库中的数据 1176 1177**起始版本:** 10 1178 1179 1180**参数:** 1181 1182| 参数项 | 描述 | 1183| -- | -- | 1184| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1185| [OH_Predicates](capi-rdb-oh-predicates.md) *predicates | 表示指向[OH_Predicates](capi-rdb-oh-predicates.md)实例的指针,指定查询条件。 | 1186| const char *const *columnNames | 表示要查询的列。如果值为空,则查询应用于所有列。 | 1187| int length | 该参数为输入参数,表示开发者传入的columnNames数组的长度。若length大于columnNames数组的实际长度,则会访问越界。 | 1188 1189**返回:** 1190 1191| 类型 | 说明 | 1192|----------------------------------| -- | 1193| [OH_Cursor](capi-rdb-oh-cursor.md) * | 如果查询成功则返回一个指向[OH_Cursor](capi-rdb-oh-cursor.md)结构体实例的指针,否则返回NULL。 | 1194 1195### OH_Rdb_Execute() 1196 1197``` 1198int OH_Rdb_Execute(OH_Rdb_Store *store, const char *sql) 1199``` 1200 1201**描述** 1202 1203执行无返回值的SQL语句。 1204 1205**起始版本:** 10 1206 1207 1208**参数:** 1209 1210| 参数项 | 描述 | 1211| -- | -- | 1212| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1213| const char *sql | 指定要执行的SQL语句。 | 1214 1215**返回:** 1216 1217| 类型 | 说明 | 1218| -- | -- | 1219| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1220 1221**参考:** 1222 1223OH_Rdb_Store 1224 1225### OH_Rdb_ExecuteV2() 1226 1227``` 1228int OH_Rdb_ExecuteV2(OH_Rdb_Store *store, const char *sql, const OH_Data_Values *args, OH_Data_Value **result) 1229``` 1230 1231**描述** 1232 1233执行有返回值的SQL语句,支持向量数据库。 1234 1235**起始版本:** 18 1236 1237 1238**参数:** 1239 1240| 参数项 | 描述 | 1241|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------| 1242| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1243| const char *sql | 指定要执行的SQL语句。 | 1244| const [OH_Data_Values](capi-rdb-oh-data-values.md) *args | 可选参数,表示指向[OH_Data_Values](capi-rdb-oh-data-values.md)实例的指针。 | 1245| [OH_Data_Value](capi-rdb-oh-data-value.md) **result | 执行成功时指向[OH_Data_Value](capi-rdb-oh-data-value.md)实例的指针,作为出参使用。使用完成后,必须通过[OH_Value_Destroy](capi-oh-data-value-h.md#oh_value_destroy)接口释放内存。 | 1246 1247**返回:** 1248 1249| 类型 | 说明 | 1250| -- | -- | 1251| int | 返回执行结果。<br>返回RDB_OK表示成功。<br>返回RDB_E_ERROR表示数据库常见错误。<br>返回RDB_E_INVALID_ARGS表示无效参数。<br>返回RDB_E_ALREADY_CLOSED表示数据库已经关闭。<br>返回RDB_E_WAL_SIZE_OVER_LIMIT表示WAL日志文件大小超过默认值。<br>返回RDB_E_SQLITE_FULL表示SQLite错误码:数据库已满。<br>返回RDB_E_SQLITE_CORRUPT表示数据库损坏。<br>返回RDB_E_SQLITE_PERM表示SQLite错误码:访问权限被拒绝。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误码:数据库文件被锁定。<br>返回RDB_E_SQLITE_LOCKED表示SQLite错误码:数据库中的表被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误码:数据库内存不足。<br>返回RDB_E_SQLITE_READONLY表示SQLite错误码:尝试写入只读数据库。<br>返回RDB_E_SQLITE_IOERR表示SQLite错误码:磁盘I/O错误。<br>返回RDB_E_SQLITE_TOO_BIG表示SQLite错误码:TEXT或BLOB超出大小限制。<br>返回RDB_E_SQLITE_MISMATCH表示SQLite错误码:数据类型不匹配。 | 1252 1253**参考:** 1254 1255OH_Value_Destroy 1256 1257### OH_Rdb_ExecuteByTrxId() 1258 1259``` 1260int OH_Rdb_ExecuteByTrxId(OH_Rdb_Store *store, int64_t trxId, const char *sql) 1261``` 1262 1263**描述** 1264 1265使用指定的事务ID执行无返回值的SQL语句,仅支持向量数据库。 1266 1267**起始版本:** 14 1268 1269 1270**参数:** 1271 1272| 参数项 | 描述 | 1273| -- | -- | 1274| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示一个指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md) 实例的指针。 | 1275| int64_t trxId | 调用[OH_Rdb_BeginTransWithTrxId](capi-relational-store-h.md#oh_rdb_begintranswithtrxid)获得的事务ID,当设置为0时,表示不启用事务。 | 1276| const char *sql | 指定要执行的SQL语句。 | 1277 1278**返回:** 1279 1280| 类型 | 说明 | 1281| -- | -- | 1282| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数,可能情况如下:<br>传入参数为空指针。<br>当前事务ID不是调用[OH_Rdb_BeginTransWithTrxId](capi-relational-store-h.md#oh_rdb_begintranswithtrxid)获得的。<br>当前事务ID已经调用[OH_Rdb_CommitByTrxId](capi-relational-store-h.md#oh_rdb_commitbytrxid)提交。<br>当前事务ID已经调用[OH_Rdb_RollBackByTrxId](capi-relational-store-h.md#oh_rdb_rollbackbytrxid)回滚。<br>当store或者sql为NULL时。<br>RDB_E_NOT_SUPPORTED表示不支持当前操作。 | 1283 1284**参考:** 1285 1286OH_Rdb_Store 1287 1288### OH_Rdb_ExecuteQuery() 1289 1290``` 1291OH_Cursor *OH_Rdb_ExecuteQuery(OH_Rdb_Store *store, const char *sql) 1292``` 1293 1294**描述** 1295 1296根据指定SQL语句查询数据库中的数据,支持向量数据库。 1297 1298**起始版本:** 10 1299 1300 1301**参数:** 1302 1303| 参数项 | 描述 | 1304| -- | -- | 1305| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1306| const char *sql | 指定要执行的SQL语句。 | 1307 1308**返回:** 1309 1310| 类型 | 说明 | 1311| -- | -- | 1312| [OH_Cursor](capi-rdb-oh-cursor.md) | 如果查询成功则返回一个指向[OH_Cursor](capi-rdb-oh-cursor.md)结构体实例的指针,否则返回NULL。 | 1313 1314**参考:** 1315 1316OH_Rdb_Store 1317 1318### OH_Rdb_ExecuteQueryV2() 1319 1320``` 1321OH_Cursor *OH_Rdb_ExecuteQueryV2(OH_Rdb_Store *store, const char *sql, const OH_Data_Values *args) 1322``` 1323 1324**描述** 1325 1326根据指定SQL语句查询数据库中的数据,支持向量数据库。 1327 1328**起始版本:** 18 1329 1330 1331**参数:** 1332 1333| 参数项 | 描述 | 1334| -- | -- | 1335| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1336| const char *sql | 指定要执行的SQL语句。 | 1337| const OH_Data_Values *args | 可选参数,表示指向[OH_Data_Values](capi-rdb-oh-data-values.md)实例的指针。 | 1338 1339**返回:** 1340 1341| 类型 | 说明 | 1342| -------------------------------- | ------------------------------------------------------------ | 1343| [OH_Cursor](capi-rdb-oh-cursor.md) * | 如果查询成功则返回一个指向[OH_Cursor](capi-rdb-oh-cursor.md)结构体实例的指针,使用完成后及时释放[OH_Cursor](capi-rdb-oh-cursor.md)。<br>如果SQL语句无效或内存分配失败,则返回NULL。 | 1344 1345**参考:** 1346 1347OH_Rdb_Store 1348 1349### OH_Rdb_BeginTransaction() 1350 1351``` 1352int OH_Rdb_BeginTransaction(OH_Rdb_Store *store) 1353``` 1354 1355**描述** 1356 1357在开始执行SQL语句之前,开始事务。 1358 1359**起始版本:** 10 1360 1361 1362**参数:** 1363 1364| 参数项 | 描述 | 1365| -- | -- | 1366| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1367 1368**返回:** 1369 1370| 类型 | 说明 | 1371| -- | -- | 1372| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1373 1374### OH_Rdb_RollBack() 1375 1376``` 1377int OH_Rdb_RollBack(OH_Rdb_Store *store) 1378``` 1379 1380**描述** 1381 1382回滚已经执行的SQL语句。 1383 1384**起始版本:** 10 1385 1386 1387**参数:** 1388 1389| 参数项 | 描述 | 1390| -- | -- | 1391| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1392 1393**返回:** 1394 1395| 类型 | 说明 | 1396| -- | -- | 1397| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1398 1399### OH_Rdb_Commit() 1400 1401``` 1402int OH_Rdb_Commit(OH_Rdb_Store *store) 1403``` 1404 1405**描述** 1406 1407提交已执行的SQL语句 1408 1409**起始版本:** 10 1410 1411 1412**参数:** 1413 1414| 参数项 | 描述 | 1415| -- | -- | 1416| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1417 1418**返回:** 1419 1420| 类型 | 说明 | 1421| -- | -- | 1422| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1423 1424### OH_Rdb_BeginTransWithTrxId() 1425 1426``` 1427int OH_Rdb_BeginTransWithTrxId(OH_Rdb_Store *store, int64_t *trxId) 1428``` 1429 1430**描述** 1431 1432在开始执行SQL语句之前,开始事务,并获得该事务的ID,仅支持向量数据库。 1433 1434**起始版本:** 14 1435 1436 1437**参数:** 1438 1439| 参数项 | 描述 | 1440| -- | -- | 1441| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示一个指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1442| int64_t *trxId | 事务ID,作为出参使用。 | 1443 1444**返回:** 1445 1446| 类型 | 说明 | 1447| -- | -- | 1448| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。<br>RDB_E_NOT_SUPPORTED表示不支持当前操作。 | 1449 1450### OH_Rdb_RollBackByTrxId() 1451 1452``` 1453int OH_Rdb_RollBackByTrxId(OH_Rdb_Store *store, int64_t trxId) 1454``` 1455 1456**描述** 1457 1458使用指定的事务ID, 回滚已经执行的SQL语句,仅支持向量数据库。 1459 1460**起始版本:** 14 1461 1462 1463**参数:** 1464 1465| 参数项 | 描述 | 1466| -- | -- | 1467| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示一个指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1468| int64_t trxId | 表示需要回滚的事务的ID。 | 1469 1470**返回:** 1471 1472| 类型 | 说明 | 1473| -- | -- | 1474| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数, 可能情况如下:<br>传入参数为空指针。<br>当前事务ID不是调用[OH_Rdb_BeginTransWithTrxId](capi-relational-store-h.md#oh_rdb_begintranswithtrxid)获得的。<br>当前事务ID已经调用[OH_Rdb_CommitByTrxId](capi-relational-store-h.md#oh_rdb_commitbytrxid)提交。<br>当前事务ID已经调用[OH_Rdb_RollBackByTrxId](capi-relational-store-h.md#oh_rdb_rollbackbytrxid)回滚。<br>RDB_E_NOT_SUPPORTED表示不支持当前操作。 | 1475 1476### OH_Rdb_CommitByTrxId() 1477 1478``` 1479int OH_Rdb_CommitByTrxId(OH_Rdb_Store *store, int64_t trxId) 1480``` 1481 1482**描述** 1483 1484使用指定的事务ID, 提交已经执行的SQL语句,仅支持向量数据库。 1485 1486**起始版本:** 14 1487 1488 1489**参数:** 1490 1491| 参数项 | 描述 | 1492| -- | -- | 1493| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示一个指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1494| int64_t trxId | 表示需要提交的事务的ID。 | 1495 1496**返回:** 1497 1498| 类型 | 说明 | 1499| -- | -- | 1500| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK 表示成功.<br>RDB_E_INVALID_ARGS表示无效参数,可能情况如下:<br>传入参数为空指针。<br>当前事务ID不是调用[OH_Rdb_BeginTransWithTrxId](capi-relational-store-h.md#oh_rdb_begintranswithtrxid)获得的。<br>当前事务ID已经调用[OH_Rdb_CommitByTrxId](capi-relational-store-h.md#oh_rdb_commitbytrxid)提交。<br>当前事务ID已经调用[OH_Rdb_RollBackByTrxId](capi-relational-store-h.md#oh_rdb_rollbackbytrxid)回滚。<br>RDB_E_NOT_SUPPORTED表示不支持当前操作。 | 1501 1502**参考:** 1503 1504OH_Rdb_Store 1505 1506### OH_Rdb_Backup() 1507 1508``` 1509int OH_Rdb_Backup(OH_Rdb_Store *store, const char *databasePath) 1510``` 1511 1512**描述** 1513 1514以指定路径备份数据库,支持向量数据库。 1515 1516**起始版本:** 10 1517 1518 1519**参数:** 1520 1521| 参数项 | 描述 | 1522| -- | -- | 1523| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1524| const char *databasePath | 指定数据库的备份文件路径。 | 1525 1526**返回:** 1527 1528| 类型 | 说明 | 1529| -- | -- | 1530| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1531 1532**参考:** 1533 1534OH_Rdb_Store 1535 1536### OH_Rdb_Restore() 1537 1538``` 1539int OH_Rdb_Restore(OH_Rdb_Store *store, const char *databasePath) 1540``` 1541 1542**描述** 1543 1544从指定的数据库备份文件恢复数据库,支持向量数据库。 1545 1546**起始版本:** 10 1547 1548 1549**参数:** 1550 1551| 参数项 | 描述 | 1552| -- | -- | 1553| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1554| const char *databasePath | 指定数据库的备份文件路径。 | 1555 1556**返回:** 1557 1558| 类型 | 说明 | 1559| -- | -- | 1560| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1561 1562### OH_Rdb_GetVersion() 1563 1564``` 1565int OH_Rdb_GetVersion(OH_Rdb_Store *store, int *version) 1566``` 1567 1568**描述** 1569 1570获取数据库版本。 1571 1572**起始版本:** 10 1573 1574 1575**参数:** 1576 1577| 参数项 | 描述 | 1578| -- | -- | 1579| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1580| int *version | 表示版本号,作为出参使用。 | 1581 1582**返回:** 1583 1584| 类型 | 说明 | 1585| -- | -- | 1586| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1587 1588### OH_Rdb_SetVersion() 1589 1590``` 1591int OH_Rdb_SetVersion(OH_Rdb_Store *store, int version) 1592``` 1593 1594**描述** 1595 1596设置数据库版本。 1597 1598**起始版本:** 10 1599 1600 1601**参数:** 1602 1603| 参数项 | 描述 | 1604| -- | -- | 1605| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1606| int version | 表示版本号。 | 1607 1608**返回:** 1609 1610| 类型 | 说明 | 1611| -- | -- | 1612| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1613 1614**参考:** 1615 1616OH_Rdb_Store 1617 1618### OH_Rdb_SetDistributedTables() 1619 1620``` 1621int OH_Rdb_SetDistributedTables(OH_Rdb_Store *store, const char *tables[], uint32_t count, Rdb_DistributedType type,const Rdb_DistributedConfig *config) 1622``` 1623 1624**描述** 1625 1626设置分布式数据库表。 1627 1628**起始版本:** 11 1629 1630 1631**参数:** 1632 1633| 参数项 | 描述 | 1634| -- | -- | 1635| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1636| const char *tables[] | 要设置的分布式数据库表表名。 | 1637| uint32_t count | 要设置的分布式数据库表的数量。 | 1638| [Rdb_DistributedType](#rdb_distributedtype) type | 表的分布式类型[Rdb_DistributedType](capi-relational-store-h.md#rdb_distributedtype)。 | 1639| const [Rdb_DistributedConfig](capi-rdb-rdb-distributedconfig.md) *config | 表的分布式配置信息[Rdb_DistributedConfig](capi-rdb-rdb-distributedconfig.md)。 | 1640 1641**返回:** 1642 1643| 类型 | 说明 | 1644| -- | -- | 1645| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1646 1647**参考:** 1648 1649OH_Rdb_Store 1650 1651### OH_Rdb_FindModifyTime() 1652 1653``` 1654OH_Cursor *OH_Rdb_FindModifyTime(OH_Rdb_Store *store, const char *tableName, const char *columnName,OH_VObject *values) 1655``` 1656 1657**描述** 1658 1659获取数据库表中数据的最后修改时间。 1660 1661**起始版本:** 11 1662 1663 1664**参数:** 1665 1666| 参数项 | 描述 | 1667| -- | -- | 1668| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1669| const char *tableName | 要查找的分布式数据库表表名。 | 1670| const char *columnName | 指定要查询的数据库表的列名。 | 1671| [OH_VObject](capi-rdb-oh-vobject.md) *values | 指定要查询的行的主键。如果数据库表无主键,参数columnName需传入"rowid",此时values为要查询的数据库表的行号。 | 1672 1673**返回:** 1674 1675| 类型 | 说明 | 1676| -- | -- | 1677| [OH_Cursor](capi-rdb-oh-cursor.md) | 如果操作成功则返回一个指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)结构体实例的指针,否则返回NULL。 | 1678 1679### Rdb_BriefObserver() 1680 1681``` 1682typedef void (*Rdb_BriefObserver)(void *context, const char *values[], uint32_t count) 1683``` 1684 1685**描述** 1686 1687端云数据更改事件的回调函数。 1688 1689**起始版本:** 11 1690 1691 1692**参数:** 1693 1694| 参数项 | 描述 | 1695| -- | -- | 1696| void *context | 表示数据观察者的上下文。 | 1697| const char *values[] | 表示更改的端云帐户。 | 1698| uint32_t count | 表示更改的端云帐户数量。 | 1699 1700### Rdb_DetailsObserver() 1701 1702``` 1703typedef void (*Rdb_DetailsObserver)(void *context, const Rdb_ChangeInfo **changeInfo, uint32_t count) 1704``` 1705 1706**描述** 1707 1708端云数据更改事件的细节的回调函数。 1709 1710**起始版本:** 11 1711 1712 1713**参数:** 1714 1715| 参数项 | 描述 | 1716| -- | -- | 1717| void *context | 表示数据观察者的上下文。 | 1718| const [Rdb_ChangeInfo](capi-rdb-rdb-changeinfo.md) **changeInfo | 表示已更改表的信息[Rdb_ChangeInfo](capi-rdb-rdb-changeinfo.md)。 | 1719| uint32_t count | 表示更改的表的数量。 | 1720 1721### OH_Rdb_Subscribe() 1722 1723``` 1724int OH_Rdb_Subscribe(OH_Rdb_Store *store, Rdb_SubscribeType type, const Rdb_DataObserver *observer) 1725``` 1726 1727**描述** 1728 1729为数据库注册观察者。当分布式数据库或本地数据库中的数据发生更改时,将调用回调。 1730 1731**起始版本:** 11 1732 1733 1734**参数:** 1735 1736| 参数项 | 描述 | 1737| -- | -- | 1738| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1739| [Rdb_SubscribeType](#rdb_subscribetype) type | 表示在[Rdb_SubscribeType](capi-relational-store-h.md#rdb_subscribetype)中定义的订阅类型。如果其值为RDB_SUBSCRIBE_TYPE_LOCAL_DETAILS,则在本地数据库中的数据更改时调用回调。 | 1740| const [Rdb_DataObserver](capi-rdb-rdb-dataobserver.md) *observer | 数据库中更改事件的观察者[Rdb_DataObserver](capi-rdb-rdb-dataobserver.md)。 | 1741 1742**返回:** 1743 1744| 类型 | 说明 | 1745| -- | -- | 1746| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1747 1748### OH_Rdb_Unsubscribe() 1749 1750``` 1751int OH_Rdb_Unsubscribe(OH_Rdb_Store *store, Rdb_SubscribeType type, const Rdb_DataObserver *observer) 1752``` 1753 1754**描述** 1755 1756从数据库中删除指定类型的指定观察者。 1757 1758**起始版本:** 11 1759 1760 1761**参数:** 1762 1763| 参数项 | 描述 | 1764| -- | -- | 1765| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针 | 1766| [Rdb_SubscribeType](#rdb_subscribetype) type | 表示在[Rdb_SubscribeType](capi-relational-store-h.md#rdb_subscribetype)中定义的订阅类型。 | 1767| const [Rdb_DataObserver](capi-rdb-rdb-dataobserver.md) *observer | 数据库中更改事件的观察者[Rdb_DataObserver](capi-rdb-rdb-dataobserver.md)。如果这是nullptr,表示删除该类型的所有观察者。 | 1768 1769**返回:** 1770 1771| 类型 | 说明 | 1772| -- | -- | 1773| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1774 1775### OH_Rdb_GetTableDetails() 1776 1777``` 1778Rdb_TableDetails *OH_Rdb_GetTableDetails(Rdb_ProgressDetails *progress, int32_t version) 1779``` 1780 1781**描述** 1782 1783从端云同步任务的统计信息中获取数据库表的统计信息。 1784 1785**起始版本:** 11 1786 1787 1788**参数:** 1789 1790| 参数项 | 描述 | 1791| -- |------------------------------------------------------------| 1792| [Rdb_ProgressDetails](capi-rdb-rdb-progressdetails.md) *progress | 表示指向[OH_ProgressDetails](capi-rdb-rdb-progressdetails.md)实例的指针。 | 1793| int32_t version | 表示当前[Rdb_ProgressDetails](capi-rdb-rdb-progressdetails.md)的版本。 | 1794 1795**返回:** 1796 1797| 类型 | 说明 | 1798| -- | -- | 1799| [Rdb_TableDetails](capi-rdb-rdb-tabledetails.md) | 如果操作成功,会返回一个[Rdb_TableDetails](capi-rdb-rdb-tabledetails.md)结构体的指针,否则返回NULL。 | 1800 1801**参考:** 1802 1803Rdb_TableDetails 1804 1805### Rdb_ProgressCallback() 1806 1807``` 1808typedef void (*Rdb_ProgressCallback)(void *context, Rdb_ProgressDetails *progressDetails) 1809``` 1810 1811**描述** 1812 1813端云同步进度的回调函数。 1814 1815**起始版本:** 11 1816 1817 1818**参数:** 1819 1820| 参数项 | 描述 | 1821|-------------------|--------------| 1822| void *context | | 1823| [Rdb_ProgressDetails](capi-rdb-rdb-progressdetails.md) *progressDetails | 端云同步进度的详细信息。 | 1824 1825### Rdb_SyncCallback() 1826 1827``` 1828typedef void (*Rdb_SyncCallback)(Rdb_ProgressDetails *progressDetails) 1829``` 1830 1831**描述** 1832 1833数据库端云同步的回调函数。 1834 1835**起始版本:** 11 1836 1837 1838**参数:** 1839 1840| 参数项 | 描述 | 1841| -- | -- | 1842| [Rdb_ProgressDetails](capi-rdb-rdb-progressdetails.md) *progressDetails | 数据库端云同步的统计信息。 | 1843 1844### OH_Rdb_CloudSync() 1845 1846``` 1847int OH_Rdb_CloudSync(OH_Rdb_Store *store, Rdb_SyncMode mode, const char *tables[], uint32_t count,const Rdb_ProgressObserver *observer) 1848``` 1849 1850**描述** 1851 1852进行端云同步。 1853 1854**起始版本:** 11 1855 1856 1857**参数:** 1858 1859| 参数项 | 描述 | 1860| -- | -- | 1861| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1862| [Rdb_SyncMode](#rdb_syncmode) mode | 表示同步过程的类型[Rdb_SyncMode](capi-relational-store-h.md#rdb_syncmode). | 1863| const char *tables[] | 表示需要同步的表名。 | 1864| uint32_t count | 同步的表的数量,如果传入的值为0,同步数据库的所有表。 | 1865| const [Rdb_ProgressObserver](capi-rdb-rdb-progressobserver.md) *observer | 端云同步进度的观察者[Rdb_ProgressObserver](capi-rdb-rdb-progressobserver.md)。 | 1866 1867**返回:** 1868 1869| 类型 | 说明 | 1870| -- | -- | 1871| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1872 1873### OH_Rdb_SubscribeAutoSyncProgress() 1874 1875``` 1876int OH_Rdb_SubscribeAutoSyncProgress(OH_Rdb_Store *store, const Rdb_ProgressObserver *observer) 1877``` 1878 1879**描述** 1880 1881订阅RDB存储的自动同步进度。<br>当收到自动同步进度的通知时,将调用回调。 1882 1883**起始版本:** 11 1884 1885 1886**参数:** 1887 1888| 参数项 | 描述 | 1889| -- | -- | 1890| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向目标[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1891| const [Rdb_ProgressObserver](capi-rdb-rdb-progressobserver.md) *observer | 用于自动同步进度的观察者[Rdb_ProgressObserver](capi-rdb-rdb-progressobserver.md)。表示调用返回自动同步进度的回调。 | 1892 1893**返回:** 1894 1895| 类型 | 说明 | 1896| -- | -- | 1897| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1898 1899### OH_Rdb_UnsubscribeAutoSyncProgress() 1900 1901``` 1902int OH_Rdb_UnsubscribeAutoSyncProgress(OH_Rdb_Store *store, const Rdb_ProgressObserver *observer) 1903``` 1904 1905**描述** 1906 1907取消订阅RDB存储的自动同步进程。 1908 1909**起始版本:** 11 1910 1911 1912**参数:** 1913 1914| 参数项 | 描述 | 1915| -- | -- | 1916| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向目标[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1917| const [Rdb_ProgressObserver](capi-rdb-rdb-progressobserver.md) *observer | 表示自动同步进度的观察者[Rdb_ProgressObserver](capi-rdb-rdb-progressobserver.md)。如果是空指针,则自动同步进程的所有回调都将被取消注册。 | 1918 1919**返回:** 1920 1921| 类型 | 说明 | 1922| -- | -- | 1923| int | 返回操作是否成功,出错时返回对应的错误码。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1924 1925### OH_Rdb_LockRow() 1926 1927``` 1928int OH_Rdb_LockRow(OH_Rdb_Store *store, OH_Predicates *predicates) 1929``` 1930 1931**描述** 1932 1933根据指定的条件锁定数据库中的数据,锁定数据不执行端云同步。 1934 1935**起始版本:** 12 1936 1937 1938**参数:** 1939 1940| 参数项 | 描述 | 1941| -- | -- | 1942| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1943| [OH_Predicates](capi-rdb-oh-predicates.md) *predicates | 表示指向[OH_Predicates](capi-rdb-oh-predicates.md)实例的指针,指定锁定条件。 | 1944 1945**返回:** 1946 1947| 类型 | 说明 | 1948| -- | -- | 1949| int | 返回锁定结果。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1950 1951### OH_Rdb_UnlockRow() 1952 1953``` 1954int OH_Rdb_UnlockRow(OH_Rdb_Store *store, OH_Predicates *predicates) 1955``` 1956 1957**描述** 1958 1959根据指定的条件锁解锁数据库中的数据。 1960 1961**起始版本:** 12 1962 1963 1964**参数:** 1965 1966| 参数项 | 描述 | 1967| -- | -- | 1968| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1969| [OH_Predicates](capi-rdb-oh-predicates.md) *predicates | 表示指向[OH_Predicates](capi-rdb-oh-predicates.md)实例的指针,指定解锁条件。 | 1970 1971**返回:** 1972 1973| 类型 | 说明 | 1974| -- | -- | 1975| int | 返回解锁结果。<br>RDB_OK表示成功。<br>RDB_E_INVALID_ARGS表示无效参数。 | 1976 1977### OH_Rdb_QueryLockedRow() 1978 1979``` 1980OH_Cursor *OH_Rdb_QueryLockedRow(OH_Rdb_Store *store, OH_Predicates *predicates, const char *const *columnNames, int length) 1981``` 1982 1983**描述** 1984 1985根据指定条件查询数据库中锁定的数据。 1986 1987**起始版本:** 12 1988 1989 1990**参数:** 1991 1992| 参数项 | 描述 | 1993| -- | -- | 1994| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 1995| [OH_Predicates](capi-rdb-oh-predicates.md) *predicates | 表示指向[OH_Predicates](capi-rdb-oh-predicates.md)实例的指针,指定查询条件。 | 1996| const char *const *columnNames | 表示要查询的列。如果值为空,则查询应用于所有列。 | 1997| int length | 该参数为输入参数,表示开发者传入的columnNames数组的长度。若length大于columnNames数组的实际长度,则会访问越界。 | 1998 1999**返回:** 2000 2001| 类型 | 说明 | 2002| -- | -- | 2003| [OH_Cursor](capi-rdb-oh-cursor.md) | 如果查询成功则返回一个指向[OH_Cursor](capi-rdb-oh-cursor.md)结构体实例的指针,否则返回NULL。 | 2004 2005### OH_Rdb_CreateTransaction() 2006 2007``` 2008int OH_Rdb_CreateTransaction(OH_Rdb_Store *store, const OH_RDB_TransOptions *options, OH_Rdb_Transaction **trans) 2009``` 2010 2011**描述** 2012 2013创建一个事务对象。 2014 2015**起始版本:** 18 2016 2017 2018**参数:** 2019 2020| 参数项 | 描述 | 2021| -- | -- | 2022| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 2023| const [OH_RDB_TransOptions](capi-rdb-oh-rdb-transoptions.md) *options | 表示指向[OH_RDB_TransOptions](capi-rdb-oh-rdb-transoptions.md)实例的指针。 | 2024| [OH_Rdb_Transaction](capi-rdb-oh-rdb-transaction.md) **trans | 输出参数,表示执行成功时指向[OH_Rdb_Transaction](capi-rdb-oh-rdb-transaction.md)实例的指针。否则返回nullptr。<br>使用完成后,必须通过[OH_RdbTrans_Destroy](capi-oh-rdb-transaction-h.md#oh_rdbtrans_destroy)接口释放内存。 | 2025 2026**返回:** 2027 2028| 类型 | 说明 | 2029| -- | -- | 2030| int | 返回执行结果。<br>返回RDB_OK表示成功。<br>返回RDB_E_ERROR表示数据库常见错误。<br>返回RDB_E_INVALID_ARGS表示无效参数。<br>返回RDB_E_ALREADY_CLOSED表示数据库已关闭。<br>返回RDB_E_DATABASE_BUSY表示数据库无响应。<br>返回RDB_E_SQLITE_FULL表示SQLite错误: 数据库已满。<br>返回RDB_E_SQLITE_CORRUPT表示数据库已损坏。<br>返回RDB_E_SQLITE_PERM表示SQLite错误: 访问权限被拒绝。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误: 数据库文件被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误: 数据库内存不足。<br>返回RDB_E_SQLITE_IOERR表示SQLite错误: 磁盘I/O错误。<br>返回RDB_E_SQLITE_CANT_OPEN表示SQLite错误: 无法打开数据库文件。 | 2031 2032### OH_Rdb_Attach() 2033 2034``` 2035int OH_Rdb_Attach(OH_Rdb_Store *store, const OH_Rdb_ConfigV2 *config, const char *attachName, int64_t waitTime,size_t *attachedNumber) 2036``` 2037 2038**描述** 2039 2040将数据库文件附加到当前连接的数据库。 2041 2042**起始版本:** 20 2043 2044 2045**参数:** 2046 2047| 参数项 | 描述 | 2048| -- | -- | 2049| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 2050| const [OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md) *config | 表示指向与此RDB存储相关的数据库配置[OH_Rdb_ConfigV2](capi-rdb-oh-rdb-configv2.md)的指针。 | 2051| const char *attachName | 表示数据库的别名。 | 2052| int64_t waitTime | 表示附加数据库的最大允许时间,范围为1到300,单位为秒。 | 2053| size_t *attachedNumber | 表示已附加的数据库数量,作为输出参数。 | 2054 2055**返回:** 2056 2057| 类型 | 说明 | 2058| -- | -- | 2059| int | 返回执行结果。<br>返回RDB_OK表示执行成功。<br>返回RDB_E_ERROR 表示数据库常见错误。<br>返回RDB_E_INVALID_ARGS表示输入参数无效。<br>返回RDB_E_ALREADY_CLOSED表示数据库已关闭。<br>返回RDB_E_NOT_SUPPORTED表示不支持的操作。<br>返回RDB_E_DATABASE_BUSY表示数据库无响应。<br>返回RDB_E_SQLITE_FULL表示SQLite错误:数据库已满。<br>返回RDB_E_SQLITE_CORRUPT表示数据库已损坏。<br>返回RDB_E_SQLITE_PERM表示SQLite错误:访问权限被拒绝。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误:数据库文件被锁定。<br>返回RDB_E_SQLITE_LOCKED表示SQLite错误:数据库中的表被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误:数据库内存不足。<br>返回RDB_E_SQLITE_READONLY表示SQLite错误:尝试写入只读数据库。<br>返回RDB_E_SQLITE_IOERR表示SQLite错误:磁盘I/O错误。<br>返回RDB_E_SQLITE_TOO_BIG表示SQLite错误:TEXT或BLOB超出大小限制。<br>返回RDB_E_SQLITE_MISMATCH表示SQLite错误:数据类型不匹配。<br>返回RDB_E_SQLITE_CONSTRAINT表示SQLite错误:违反约束导致操作中止。 | 2060 2061### OH_Rdb_Detach() 2062 2063``` 2064int OH_Rdb_Detach(OH_Rdb_Store *store, const char *attachName, int64_t waitTime, size_t *attachedNumber) 2065``` 2066 2067**描述** 2068 2069从当前数据库中分离指定的数据库。 2070 2071**起始版本:** 20 2072 2073 2074**参数:** 2075 2076| 参数项 | 描述 | 2077| -- | -- | 2078| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 2079| const char *attachName | 表示数据库的别名。 | 2080| int64_t waitTime | 表示分离数据库的最大允许时间,范围为1到300,单位为秒。 | 2081| size_t *attachedNumber | 表示已附加的数据库数量,作为输出参数。 | 2082 2083**返回:** 2084 2085| 类型 | 说明 | 2086| -- | -- | 2087| int | 返回执行结果。<br>返回RDB_OK表示执行成功。<br>返回RDB_E_ERROR 表示数据库常见错误。<br>返回RDB_E_INVALID_ARGS表示输入参数无效。<br>返回RDB_E_ALREADY_CLOSED表示数据库已关闭。<br>返回RDB_E_NOT_SUPPORTED表示不支持的操作。<br>返回RDB_E_DATABASE_BUSY表示数据库无响应。<br>返回RDB_E_SQLITE_FULL表示SQLite错误:数据库已满。<br>返回RDB_E_SQLITE_CORRUPT表示数据库已损坏。<br>返回RDB_E_SQLITE_PERM表示SQLite错误:访问权限被拒绝。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误:数据库文件被锁定。<br>返回RDB_E_SQLITE_LOCKED表示SQLite错误:数据库中的表被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误:数据库内存不足。<br>返回RDB_E_SQLITE_READONLY表示SQLite错误:尝试写入只读数据库。<br>返回RDB_E_SQLITE_IOERR表示SQLite错误:磁盘I/O错误。<br>返回RDB_E_SQLITE_TOO_BIG表示SQLite错误:TEXT或BLOB超出大小限制。<br>返回RDB_E_SQLITE_MISMATCH表示SQLite错误:数据类型不匹配。<br>返回RDB_E_SQLITE_CONSTRAINT表示SQLite错误:违反约束导致操作中止。 | 2088 2089### OH_Rdb_SetLocale() 2090 2091``` 2092int OH_Rdb_SetLocale(OH_Rdb_Store *store, const char *locale) 2093``` 2094 2095**描述** 2096 2097支持不同语言的排序规则。 2098 2099**起始版本:** 20 2100 2101 2102**参数:** 2103 2104| 参数项 | 描述 | 2105| -- | -- | 2106| [OH_Rdb_Store](capi-rdb-oh-rdb-store.md) *store | 表示指向[OH_Rdb_Store](capi-rdb-oh-rdb-store.md)实例的指针。 | 2107| const char *locale | 与语言相关的区域设置,例如 zh。该值符合 ISO 639 标准。 | 2108 2109**返回:** 2110 2111| 类型 | 说明 | 2112| -- | -- | 2113| int | 返回执行结果。<br>返回RDB_OK表示执行成功。<br>返回RDB_ERR表示函数执行异常。<br>返回RDB_E_INVALID_ARGS表示输入参数无效。<br>返回RDB_E_ALREADY_CLOSED表示数据库已关闭。<br>返回RDB_E_SQLITE_BUSY表示SQLite错误:数据库文件被锁定。<br>返回RDB_E_SQLITE_NOMEM表示SQLite错误:数据库内存不足。 | 2114