• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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