分布式鍵值數(shù)據(jù)庫為應(yīng)用程序提供不同設(shè)備間數(shù)據(jù)庫的分布式協(xié)同能力。通過調(diào)用分布式鍵值數(shù)據(jù)庫各個(gè)接口,應(yīng)用程序可將數(shù)據(jù)保存到分布式鍵值數(shù)據(jù)庫中,并可對(duì)分布式鍵值數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增加、刪除、修改、查詢等操作。
該模塊提供以下分布式鍵值數(shù)據(jù)庫相關(guān)的常用功能:
本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
分布式鍵值數(shù)據(jù)庫當(dāng)前僅支持本地功能,分布式功能暫不支持。
提供KVManager實(shí)例的配置信息,包括調(diào)用方的包名和應(yīng)用的上下文。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
分布式鍵值數(shù)據(jù)庫常量。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 值 | 說明 |
---|---|---|
MAX_KEY_LENGTH | 1024 | 數(shù)據(jù)庫中Key允許的最大長度,單位字節(jié)。 |
MAX_VALUE_LENGTH | 4194303 | 數(shù)據(jù)庫中Value允許的最大長度,單位字節(jié)。 |
MAX_KEY_LENGTH_DEVICE | 896 | 設(shè)備協(xié)同數(shù)據(jù)庫中key允許的最大長度,單位字節(jié)。 |
MAX_STORE_ID_LENGTH | 128 | 數(shù)據(jù)庫標(biāo)識(shí)符允許的最大長度,單位字節(jié)。 |
MAX_QUERY_LENGTH | 512000 | 最大查詢長度,單位字節(jié)。 |
MAX_BATCH_SIZE | 128 | 最大批處理操作數(shù)量。 |
數(shù)據(jù)類型枚舉。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 說明 |
---|---|
STRING | 表示值類型為字符串。 |
INTEGER | 表示值類型為整數(shù)。 |
FLOAT | 表示值類型為浮點(diǎn)數(shù)。 |
BYTE_ARRAY | 表示值類型為字節(jié)數(shù)組。 |
BOOLEAN | 表示值類型為布爾值。 |
DOUBLE | 表示值類型為雙浮點(diǎn)數(shù)。 |
存儲(chǔ)在數(shù)據(jù)庫中的值對(duì)象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
type | 是 | 值類型。 | |
value | Uint8Array | string | number | boolean | 是 | 值。 |
存儲(chǔ)在數(shù)據(jù)庫中的鍵值對(duì)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 鍵值。 |
value | 是 | 值對(duì)象。 |
數(shù)據(jù)變更時(shí)通知的對(duì)象,包括數(shù)據(jù)插入的數(shù)據(jù)、更新的數(shù)據(jù)、刪除的數(shù)據(jù)和設(shè)備ID。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
同步模式枚舉。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 說明 |
---|---|
PULL_ONLY | 表示只能從遠(yuǎn)端拉取數(shù)據(jù)到本端。 |
PUSH_ONLY | 表示只能從本端推送數(shù)據(jù)到遠(yuǎn)端。 |
PUSH_PULL | 表示從本端推送數(shù)據(jù)到遠(yuǎn)端,然后從遠(yuǎn)端拉取數(shù)據(jù)到本端。 |
訂閱類型枚舉。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 說明 |
---|---|
SUBSCRIBE_TYPE_LOCAL | 表示訂閱本地?cái)?shù)據(jù)變更。 |
SUBSCRIBE_TYPE_REMOTE | 表示訂閱遠(yuǎn)端數(shù)據(jù)變更。 此接口能力在HarmonyOS 3.1Release暫不支持。 |
SUBSCRIBE_TYPE_ALL | 表示訂閱遠(yuǎn)端和本地?cái)?shù)據(jù)變更。 此接口能力在HarmonyOS 3.1Release暫不支持。 |
分布式鍵值數(shù)據(jù)庫類型枚舉。
名稱 | 說明 |
---|---|
DEVICE_COLLABORATION | 表示多設(shè)備協(xié)同數(shù)據(jù)庫。 數(shù)據(jù)庫特點(diǎn): 數(shù)據(jù)以設(shè)備的維度管理,不存在沖突;支持按照設(shè)備的維度查詢數(shù)據(jù)。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
SINGLE_VERSION | 表示單版本數(shù)據(jù)庫。 數(shù)據(jù)庫特點(diǎn): 數(shù)據(jù)不分設(shè)備,設(shè)備之間修改相同的key會(huì)覆蓋。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core |
數(shù)據(jù)庫的安全級(jí)別枚舉。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 說明 |
---|---|
S1 | 表示數(shù)據(jù)庫的安全級(jí)別為低級(jí)別,數(shù)據(jù)的泄露、篡改、破壞、銷毀可能會(huì)給個(gè)人或組織導(dǎo)致有限的不利影響。 例如,性別、國籍,用戶申請(qǐng)記錄等。 |
S2 | 表示數(shù)據(jù)庫的安全級(jí)別為中級(jí)別,數(shù)據(jù)的泄露、篡改、破壞、銷毀可能會(huì)給個(gè)人或組織導(dǎo)致嚴(yán)重的不利影響。 例如,個(gè)人詳細(xì)通信地址,姓名昵稱等。 |
S3 | 表示數(shù)據(jù)庫的安全級(jí)別為高級(jí)別,數(shù)據(jù)的泄露、篡改、破壞、銷毀可能會(huì)給個(gè)人或組織導(dǎo)致嚴(yán)峻的不利影響。 例如,個(gè)人實(shí)時(shí)精確定位信息、運(yùn)動(dòng)軌跡等。 |
S4 | 表示數(shù)據(jù)庫的安全級(jí)別為關(guān)鍵級(jí)別,業(yè)界法律法規(guī)中定義的特殊數(shù)據(jù)類型,涉及個(gè)人的最私密領(lǐng)域的信息或者一旦泄露、篡改、破壞、銷毀可能會(huì)給個(gè)人或組織造成重大的不利影響數(shù)據(jù)。 例如,政治觀點(diǎn)、宗教、和哲學(xué)信仰、工會(huì)成員資格、基因數(shù)據(jù)、生物信息、健康和性生活狀況、性取向等或設(shè)備認(rèn)證鑒權(quán)、個(gè)人的信用卡等財(cái)務(wù)信息。 |
用于提供創(chuàng)建數(shù)據(jù)庫的配置信息。
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
createIfMissing | boolean | 否 | 當(dāng)數(shù)據(jù)庫文件不存在時(shí)是否創(chuàng)建數(shù)據(jù)庫,默認(rèn)為true,即創(chuàng)建。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core |
encrypt | boolean | 否 | 設(shè)置數(shù)據(jù)庫文件是否加密,默認(rèn)為false,即不加密。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core |
backup | boolean | 否 | 設(shè)置數(shù)據(jù)庫文件是否備份,默認(rèn)為true,即備份。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core |
autoSync | boolean | 否 | 設(shè)置數(shù)據(jù)庫文件是否自動(dòng)同步。默認(rèn)為false,即手動(dòng)同步;設(shè)置為true時(shí),表示自動(dòng)同步。 此接口能力在HarmonyOS 3.1Release暫不支持。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core 需要權(quán)限: ohos.permission.DISTRIBUTED_DATASYNC |
kvStoreType | 否 | 設(shè)置要?jiǎng)?chuàng)建的數(shù)據(jù)庫類型,默認(rèn)為DEVICE_COLLABORATION,即多設(shè)備協(xié)同數(shù)據(jù)庫。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core | |
securityLevel | 是 | 設(shè)置數(shù)據(jù)庫安全級(jí)別。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core | |
schema | 否 | 設(shè)置定義存儲(chǔ)在數(shù)據(jù)庫中的值,默認(rèn)為undefined,即不使用Schema。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
表示數(shù)據(jù)庫模式,可以在創(chuàng)建或打開數(shù)據(jù)庫時(shí)創(chuàng)建Schema對(duì)象并將它們放入Options中。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
root | 是 | 是 | 表示json根對(duì)象。 | |
indexes | Array<string> | 是 | 是 | 表示json類型的字符串?dāng)?shù)組。 |
mode | number | 是 | 是 | 表示Schema的模式。 |
skip | number | 是 | 是 | Schema的跳躍大小。 |
constructor()
用于創(chuàng)建Schema實(shí)例的構(gòu)造函數(shù)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
表示 Schema 實(shí)例的節(jié)點(diǎn),提供定義存儲(chǔ)在數(shù)據(jù)庫中的值的方法。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
nullable | boolean | 是 | 是 | 表示數(shù)據(jù)庫字段是否可以為空。 |
default | string | 是 | 是 | 表示Fieldnode的默認(rèn)值。 |
type | number | 是 | 是 | 表示指定節(jié)點(diǎn)對(duì)應(yīng)數(shù)據(jù)類型的值。 |
constructor(name: string)
用于創(chuàng)建帶有string字段FieldNode實(shí)例的構(gòu)造函數(shù)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
name | string | 是 | FieldNode的值。 |
appendChild(child: FieldNode): boolean
在當(dāng)前 FieldNode 中添加一個(gè)子節(jié)點(diǎn)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
child | 是 | 要附加的域節(jié)點(diǎn)。 |
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示子節(jié)點(diǎn)成功添加到FieldNode;返回false則表示操作失敗。 |
示例:
- try {
- let node = new distributedKVStore.FieldNode("root");
- let child1 = new distributedKVStore.FieldNode("child1");
- let child2 = new distributedKVStore.FieldNode("child2");
- let child3 = new distributedKVStore.FieldNode("child3");
- node.appendChild(child1);
- node.appendChild(child2);
- node.appendChild(child3);
- console.info("appendNode " + JSON.stringify(node));
- child1 = null;
- child2 = null;
- child3 = null;
- node = null;
- } catch (e) {
- console.error("AppendChild " + e);
- }
createKVManager(config: KVManagerConfig): KVManager
創(chuàng)建一個(gè)KVManager對(duì)象實(shí)例,用于管理數(shù)據(jù)庫對(duì)象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
config | 是 | 提供KVManager實(shí)例的配置信息,包括調(diào)用方的包名和用戶信息。 |
返回值:
類型 | 說明 |
---|---|
返回創(chuàng)建的KVManager對(duì)象實(shí)例。 |
示例:
Stage模型下的示例:
- import UIAbility from '@ohos.app.ability.UIAbility';
- let kvManager;
- export default class EntryAbility extends UIAbility {
- onCreate() {
- console.info("MyAbilityStage onCreate")
- let context = this.context
- const kvManagerConfig = {
- context: context,
- bundleName: 'com.example.datamanagertest',
- }
- try {
- kvManager = distributedKVStore.createKVManager(kvManagerConfig);
- console.info("Succeeded in creating KVManager");
- } catch (e) {
- console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`);
- }
- }
- }
FA模型下的示例:
- import featureAbility from '@ohos.ability.featureAbility';
- let kvManager;
- let context = featureAbility.getContext()
- const kvManagerConfig = {
- context: context,
- bundleName: 'com.example.datamanagertest',
- }
- try {
- kvManager = distributedKVStore.createKVManager(kvManagerConfig);
- console.info("Succeeded in creating KVManager");
- } catch (e) {
- console.error(`Failed to create KVManager.code is ${e.code},message is ${e.message}`);
- }
分布式鍵值數(shù)據(jù)庫管理實(shí)例,用于獲取分布式鍵值數(shù)據(jù)庫的相關(guān)信息。在調(diào)用KVManager的方法前,需要先通過createKVManager構(gòu)建一個(gè)KVManager實(shí)例。
getKVStore<T>(storeId: string, options: Options, callback: AsyncCallback<T>): void
通過指定Options和storeId,創(chuàng)建并獲取分布式鍵值數(shù)據(jù)庫,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
storeId | string | 是 | 數(shù)據(jù)庫唯一標(biāo)識(shí)符,長度不大于MAX_STORE_ID_LENGTH。 |
options | 是 | 創(chuàng)建分布式鍵值實(shí)例的配置信息。 | |
callback | AsyncCallback<T> | 是 | 回調(diào)函數(shù)。返回創(chuàng)建的分布式鍵值數(shù)據(jù)庫實(shí)例(根據(jù)kvStoreType的不同,可以創(chuàng)建SingleKVStore實(shí)例和DeviceKVStore實(shí)例)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100002 | Open existed database with changed options. |
15100003 | Database corrupted. |
示例:
- let kvStore;
- try {
- const options = {
- createIfMissing: true,
- encrypt: false,
- backup: false,
- autoSync: true,
- kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
- securityLevel: distributedKVStore.SecurityLevel.S2,
- };
- kvManager.getKVStore('storeId', options, function (err, store) {
- if (err) {
- console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info("Succeeded in getting KVStore");
- kvStore = store;
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
getKVStore<T>(storeId: string, options: Options): Promise<T>
通過指定Options和storeId,創(chuàng)建并獲取分布式鍵值數(shù)據(jù)庫,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
storeId | string | 是 | 數(shù)據(jù)庫唯一標(biāo)識(shí)符,長度不大于MAX_STORE_ID_LENGTH。 |
options | 是 | 創(chuàng)建分布式鍵值實(shí)例的配置信息。 |
返回值:
類型 | 說明 |
---|---|
Promise<T> | Promise對(duì)象。返回創(chuàng)建的分布式鍵值數(shù)據(jù)庫實(shí)例(根據(jù)kvStoreType的不同,可以創(chuàng)建SingleKVStore實(shí)例和DeviceKVStore實(shí)例。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100002 | Open existed database with changed options. |
15100003 | Database corrupted. |
示例:
- let kvStore;
- try {
- const options = {
- createIfMissing: true,
- encrypt: false,
- backup: false,
- autoSync: true,
- kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
- securityLevel: distributedKVStore.SecurityLevel.S2,
- };
- kvManager.getKVStore('storeId', options).then((store) => {
- console.info("Succeeded in getting KVStore");
- kvStore = store;
- }).catch((err) => {
- console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
closeKVStore(appId: string, storeId: string, callback: AsyncCallback<void>): void
通過storeId的值關(guān)閉指定的分布式鍵值數(shù)據(jù)庫,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調(diào)用數(shù)據(jù)庫方的包名。 |
storeId | string | 是 | 要關(guān)閉的數(shù)據(jù)庫唯一標(biāo)識(shí)符,長度不大于MAX_STORE_ID_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
示例:
- const options = {
- createIfMissing: true,
- encrypt: false,
- backup: false,
- autoSync: true,
- kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
- schema: undefined,
- securityLevel: distributedKVStore.SecurityLevel.S2,
- }
- try {
- kvManager.getKVStore('storeId', options, async function (err, store) {
- if (err != undefined) {
- console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting KVStore');
- kvStore = store;
- kvStore = null;
- store = null;
- kvManager.closeKVStore('appId', 'storeId', function (err) {
- if (err != undefined) {
- console.error(`Failed to close KVStore.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in closing KVStore');
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
closeKVStore(appId: string, storeId: string): Promise<void>
通過storeId的值關(guān)閉指定的分布式鍵值數(shù)據(jù)庫,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調(diào)用數(shù)據(jù)庫方的包名。 |
storeId | string | 是 | 要關(guān)閉的數(shù)據(jù)庫唯一標(biāo)識(shí)符,長度不大于MAX_STORE_ID_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
示例:
- const options = {
- createIfMissing: true,
- encrypt: false,
- backup: false,
- autoSync: true,
- kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
- schema: undefined,
- securityLevel: distributedKVStore.SecurityLevel.S2,
- }
- try {
- kvManager.getKVStore('storeId', options).then(async (store) => {
- console.info('Succeeded in getting KVStore');
- kvStore = store;
- kvStore = null;
- store = null;
- kvManager.closeKVStore('appId', 'storeId').then(() => {
- console.info('Succeeded in closing KVStore');
- }).catch((err) => {
- console.error(`Failed to close KVStore.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to close KVStore.code is ${e.code},message is ${e.message}`);
- }
deleteKVStore(appId: string, storeId: string, callback: AsyncCallback<void>): void
通過storeId的值刪除指定的分布式鍵值數(shù)據(jù)庫,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調(diào)用數(shù)據(jù)庫方的包名。 |
storeId | string | 是 | 要?jiǎng)h除的數(shù)據(jù)庫唯一標(biāo)識(shí)符,長度不大于MAX_STORE_ID_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100004 | Not found. |
示例:
- const options = {
- createIfMissing: true,
- encrypt: false,
- backup: false,
- autoSync: true,
- kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
- schema: undefined,
- securityLevel: distributedKVStore.SecurityLevel.S2,
- }
- try {
- kvManager.getKVStore('store', options, async function (err, store) {
- if (err != undefined) {
- console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting KVStore');
- kvStore = store;
- kvStore = null;
- store = null;
- kvManager.deleteKVStore('appId', 'storeId', function (err) {
- if (err != undefined) {
- console.error(`Failed to delete KVStore.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info(`Succeeded in deleting KVStore`);
- });
- });
- } catch (e) {
- console.error(`Failed to delete KVStore.code is ${e.code},message is ${e.message}`);
- }
deleteKVStore(appId: string, storeId: string): Promise<void>
通過storeId的值刪除指定的分布式鍵值數(shù)據(jù)庫,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調(diào)用數(shù)據(jù)庫方的包名。 |
storeId | string | 是 | 要?jiǎng)h除的數(shù)據(jù)庫唯一標(biāo)識(shí)符,長度不大于MAX_STORE_ID_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100004 | Not found. |
示例:
- const options = {
- createIfMissing: true,
- encrypt: false,
- backup: false,
- autoSync: true,
- kvStoreType: distributedKVStore.KVStoreType.SINGLE_VERSION,
- schema: undefined,
- securityLevel: distributedKVStore.SecurityLevel.S2,
- }
- try {
- kvManager.getKVStore('storeId', options).then(async (store) => {
- console.info('Succeeded in getting KVStore');
- kvStore = store;
- kvStore = null;
- store = null;
- kvManager.deleteKVStore('appId', 'storeId').then(() => {
- console.info('Succeeded in deleting KVStore');
- }).catch((err) => {
- console.error(`Failed to delete KVStore.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to get KVStore.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to delete KVStore.code is ${e.code},message is ${e.message}`);
- }
getAllKVStoreId(appId: string, callback: AsyncCallback<string[]>): void
獲取所有通過getKVStore方法創(chuàng)建的且沒有調(diào)用deleteKVStore方法刪除的分布式鍵值數(shù)據(jù)庫的storeId,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調(diào)用數(shù)據(jù)庫方的包名。 |
callback | AsyncCallback<string[]> | 是 | 回調(diào)函數(shù)。返回所有創(chuàng)建的分布式鍵值數(shù)據(jù)庫的storeId。 |
示例:
- try {
- kvManager.getAllKVStoreId('appId', function (err, data) {
- if (err != undefined) {
- console.error(`Failed to get AllKVStoreId.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting AllKVStoreId');
- console.info(`GetAllKVStoreId size = ${data.length}`);
- });
- } catch (e) {
- console.error(`Failed to get AllKVStoreId.code is ${e.code},message is ${e.message}`);
- }
getAllKVStoreId(appId: string): Promise<string[]>
獲取所有通過getKVStore方法創(chuàng)建的且沒有調(diào)用deleteKVStore方法刪除的分布式鍵值數(shù)據(jù)庫的storeId,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調(diào)用數(shù)據(jù)庫方的包名。 |
返回值:
類型 | 說明 |
---|---|
Promise<string[]> | Promise對(duì)象。返回所有創(chuàng)建的分布式鍵值數(shù)據(jù)庫的storeId。 |
示例:
- try {
- console.info('GetAllKVStoreId');
- kvManager.getAllKVStoreId('appId').then((data) => {
- console.info('Succeeded in getting AllKVStoreId');
- console.info(`GetAllKVStoreId size = ${data.length}`);
- }).catch((err) => {
- console.error(`Failed to get AllKVStoreId.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to get AllKVStoreId.code is ${e.code},message is ${e.message}`);
- }
on(event: 'distributedDataServiceDie', deathCallback: Callback<void>): void
訂閱服務(wù)狀態(tài)變更通知。如果服務(wù)終止,需要重新注冊(cè)數(shù)據(jù)變更通知和同步完成事件回調(diào)通知,并且同步操作會(huì)返回失敗。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'distributedDataServiceDie',即服務(wù)狀態(tài)變更事件。 |
deathCallback | Callback<void> | 是 | 回調(diào)函數(shù)。 |
示例:
- try {
- console.info('KVManagerOn');
- const deathCallback = function () {
- console.info('death callback call');
- }
- kvManager.on('distributedDataServiceDie', deathCallback);
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
off(event: 'distributedDataServiceDie', deathCallback?: Callback<void>): void
取消訂閱服務(wù)狀態(tài)變更通知。參數(shù)中的deathCallback必須是已經(jīng)訂閱過的deathCallback,否則會(huì)取消訂閱失敗。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 取消訂閱的事件名,固定為'distributedDataServiceDie',即服務(wù)狀態(tài)變更事件。 |
deathCallback | Callback<void> | 否 | 回調(diào)函數(shù)。如果該參數(shù)不填,那么會(huì)將之前訂閱過的所有的deathCallback取消訂閱。 |
示例:
- try {
- console.info('KVManagerOff');
- const deathCallback = function () {
- console.info('death callback call');
- }
- kvManager.off('distributedDataServiceDie', deathCallback);
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
提供獲取數(shù)據(jù)庫結(jié)果集的相關(guān)方法,包括查詢和移動(dòng)數(shù)據(jù)讀取位置等。同時(shí)允許打開的結(jié)果集的最大數(shù)量為8個(gè)。
在調(diào)用KVStoreResultSet的方法前,需要先通過getKVStore構(gòu)建一個(gè)SingleKVStore或者DeviceKVStore實(shí)例。
getCount(): number
獲取結(jié)果集中的總行數(shù)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
number | 返回?cái)?shù)據(jù)的總行數(shù)。 |
示例:
- try {
- let resultSet;
- let count;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- count = resultSet.getCount();
- console.info("getCount succeed:" + count);
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("getCount failed: " + e);
- }
getPosition(): number
獲取結(jié)果集中當(dāng)前的讀取位置。讀取位置會(huì)因moveToFirst、moveToLast等操作而發(fā)生變化。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
number | 返回當(dāng)前讀取位置。取值范圍>= -1,值為 -1 時(shí)表示還未開始讀取,值為 0 時(shí)表示第一行。 |
示例:
- try {
- let resultSet;
- let position;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeeded.');
- resultSet = result;
- position = resultSet.getPosition();
- console.info("getPosition succeed:" + position);
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("getPosition failed: " + e);
- }
moveToFirst(): boolean
將讀取位置移動(dòng)到第一行。如果結(jié)果集為空,則返回false。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
- try {
- let resultSet;
- let moved;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- moved = resultSet.moveToFirst();
- console.info("moveToFirst succeed: " + moved);
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("moveToFirst failed " + e);
- }
moveToLast(): boolean
將讀取位置移動(dòng)到最后一行。如果結(jié)果集為空,則返回false。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
- try {
- let resultSet;
- let moved;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- moved = resultSet.moveToLast();
- console.info("moveToLast succeed:" + moved);
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("moveToLast failed: " + e);
- }
moveToNext(): boolean
將讀取位置移動(dòng)到下一行。如果結(jié)果集為空,則返回false。適用于全量獲取數(shù)據(jù)庫結(jié)果集的場(chǎng)景。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
- try {
- let resultSet;
- let moved;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- do {
- moved = resultSet.moveToNext();
- console.info("moveToNext succeed: " + moved);
- } while (moved)
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("moveToNext failed: " + e);
- }
moveToPrevious(): boolean
將讀取位置移動(dòng)到上一行。如果結(jié)果集為空,則返回false。適用于全量獲取數(shù)據(jù)庫結(jié)果集的場(chǎng)景。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
- try {
- let resultSet;
- let moved;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- moved = resultSet.moveToLast();
- moved = resultSet.moveToPrevious();
- console.info("moveToPrevious succeed:" + moved);
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("moveToPrevious failed: " + e);
- }
move(offset: number): boolean
將讀取位置移動(dòng)到當(dāng)前位置的相對(duì)偏移量。即當(dāng)前游標(biāo)位置向下偏移 offset 行。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
offset | number | 是 | 表示與當(dāng)前位置的相對(duì)偏移量,負(fù)偏移表示向后移動(dòng),正偏移表示向前移動(dòng)。 |
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
- try {
- let resultSet;
- let moved;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('Succeeded in getting resultSet');
- resultSet = result;
- moved = resultSet.move(2); //若當(dāng)前位置為0,將讀取位置從絕對(duì)位置為0的位置移動(dòng)2行,即移動(dòng)到絕對(duì)位置為2,行數(shù)為3的位置
- console.info(`Succeeded in moving.moved = ${moved}`);
- }).catch((err) => {
- console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to move.code is ${e.code},message is ${e.message}`);
- }
moveToPosition(position: number): boolean
將讀取位置從 0 移動(dòng)到絕對(duì)位置。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
position | number | 是 | 表示絕對(duì)位置。 |
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示操作成功;返回false則表示操作失敗。 |
示例:
- try {
- let resultSet;
- let moved;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('Succeeded in getting resultSet');
- resultSet = result;
- moved = resultSet.moveToPosition(1);
- console.info(`Succeeded in moving to position.moved=${moved}`);
- }).catch((err) => {
- console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to move to position.code is ${e.code},message is ${e.message}`);
- }
isFirst(): boolean
檢查讀取位置是否為第一行。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示讀取位置為第一行;返回false表示讀取位置不是第一行。 |
示例:
- try {
- let resultSet;
- let isfirst;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- isfirst = resultSet.isFirst();
- console.info("Check isFirst succeed:" + isfirst);
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("Check isFirst failed: " + e);
- }
isLast(): boolean
檢查讀取位置是否為最后一行。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示讀取位置為最后一行;返回false表示讀取位置不是最后一行。 |
示例:
- try {
- let resultSet;
- let islast;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- islast = resultSet.isLast();
- console.info("Check isLast succeed: " + islast);
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("Check isLast failed: " + e);
- }
isBeforeFirst(): boolean
檢查讀取位置是否在第一行之前。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示讀取位置在第一行之前;返回false表示讀取位置不在第一行之前。 |
示例:
- try {
- let resultSet;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- const isbeforefirst = resultSet.isBeforeFirst();
- console.info("Check isBeforeFirst succeed: " + isbeforefirst);
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("Check isBeforeFirst failed: " + e);
- }
isAfterLast(): boolean
檢查讀取位置是否在最后一行之后。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示讀取位置在最后一行之后;返回false表示讀取位置不在最后一行之后。 |
示例:
- try {
- let resultSet;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- const isafterlast = resultSet.isAfterLast();
- console.info("Check isAfterLast succeed:" + isafterlast);
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("Check isAfterLast failed: " + e);
- }
getEntry(): Entry
從當(dāng)前位置獲取對(duì)應(yīng)的鍵值對(duì)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回鍵值對(duì)。 |
示例:
- try {
- let resultSet;
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('getResultSet succeed.');
- resultSet = result;
- const entry = resultSet.getEntry();
- console.info("getEntry succeed:" + JSON.stringify(entry));
- }).catch((err) => {
- console.error('getResultSet failed: ' + err);
- });
- } catch (e) {
- console.error("getEntry failed: " + e);
- }
使用謂詞表示數(shù)據(jù)庫查詢,提供創(chuàng)建Query實(shí)例、查詢數(shù)據(jù)庫中的數(shù)據(jù)和添加謂詞的方法。一個(gè)Query對(duì)象中謂詞數(shù)量上限為256個(gè)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
constructor()
用于創(chuàng)建Schema實(shí)例的構(gòu)造函數(shù)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
reset(): Query
重置Query對(duì)象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回重置的Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.equalTo("key", "value");
- console.info("query is " + query.getSqlLike());
- query.reset();
- console.info("query is " + query.getSqlLike());
- query = null;
- } catch (e) {
- console.error("simply calls should be ok :" + e);
- }
equalTo(field: string, value: number|string|boolean): Query
構(gòu)造一個(gè)Query對(duì)象來查詢具有指定字段的條目,其值等于指定的值。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string|boolean | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.equalTo("field", "value");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
notEqualTo(field: string, value: number|string|boolean): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有指定字段且值不等于指定值的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string|boolean | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.notEqualTo("field", "value");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
greaterThan(field: string, value: number|string|boolean): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有大于指定值的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string|boolean | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.greaterThan("field", "value");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
lessThan(field: string, value: number|string): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有小于指定值的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.lessThan("field", "value");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
greaterThanOrEqualTo(field: string, value: number|string): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有指定字段且值大于或等于指定值的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.greaterThanOrEqualTo("field", "value");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
lessThanOrEqualTo(field: string, value: number|string): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有指定字段且值小于或等于指定值的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.lessThanOrEqualTo("field", "value");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
isNull(field: string): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有值為null的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.isNull("field");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
inNumber(field: string, valueList: number[]): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有指定字段的條目,其值在指定的值列表中。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | number[] | 是 | 表示指定的值列表。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.inNumber("field", [0, 1]);
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
inString(field: string, valueList: string[]): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有指定字段的條目,其值在指定的字符串值列表中。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | string[] | 是 | 表示指定的字符串值列表。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.inString("field", ['test1', 'test2']);
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
notInNumber(field: string, valueList: number[]): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有指定字段的條目,該字段的值不在指定的值列表中。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | number[] | 是 | 表示指定的值列表。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.notInNumber("field", [0, 1]);
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
notInString(field: string, valueList: string[]): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有指定字段且值不在指定字符串值列表中的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | string[] | 是 | 表示指定的字符串值列表。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.notInString("field", ['test1', 'test2']);
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
like(field: string, value: string): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有與指定字符串值相似的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | string | 是 | 表示指定的字符串值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.like("field", "value");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
unlike(field: string, value: string): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有與指定字符串值不相似的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | string | 是 | 表示指定的字符串值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.unlike("field", "value");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
and(): Query
構(gòu)造一個(gè)帶有與條件的查詢對(duì)象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回查詢對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.notEqualTo("field", "value1");
- query.and();
- query.notEqualTo("field", "value2");
- console.info("query is " + query.getSqlLike());
- query = null;
- } catch (e) {
- console.error("duplicated calls should be ok :" + e);
- }
or(): Query
構(gòu)造一個(gè)帶有或條件的Query對(duì)象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回查詢對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.notEqualTo("field", "value1");
- query.or();
- query.notEqualTo("field", "value2");
- console.info("query is " + query.getSqlLike());
- query = null;
- } catch (e) {
- console.error("duplicated calls should be ok :" + e);
- }
orderByAsc(field: string): Query
構(gòu)造一個(gè)Query對(duì)象,將查詢結(jié)果按升序排序。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.notEqualTo("field", "value");
- query.orderByAsc("field");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
orderByDesc(field: string): Query
構(gòu)造一個(gè)Query對(duì)象,將查詢結(jié)果按降序排序。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.notEqualTo("field", "value");
- query.orderByDesc("field");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
limit(total: number, offset: number): Query
構(gòu)造一個(gè)Query對(duì)象來指定結(jié)果的數(shù)量和開始位置。該接口必須要在Query對(duì)象查詢和升降序等操作之后調(diào)用,調(diào)用limit接口后,不可再對(duì)Query對(duì)象進(jìn)行查詢和升降序等操作。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
total | number | 是 | 表示指定的結(jié)果數(shù)。 |
offset | number | 是 | 表示起始位置。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- let total = 10;
- let offset = 1;
- try {
- let query = new distributedKVStore.Query();
- query.notEqualTo("field", "value");
- query.limit(total, offset);
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
isNotNull(field: string): Query
構(gòu)造一個(gè)Query對(duì)象以查詢具有值不為null的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.isNotNull("field");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
beginGroup(): Query
創(chuàng)建一個(gè)帶有左括號(hào)的查詢條件組。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.beginGroup();
- query.isNotNull("field");
- query.endGroup();
- console.info("query is " + query.getSqlLike());
- query = null;
- } catch (e) {
- console.error("duplicated calls should be ok :" + e);
- }
endGroup(): Query
創(chuàng)建一個(gè)帶有右括號(hào)的查詢條件組。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.beginGroup();
- query.isNotNull("field");
- query.endGroup();
- console.info("query is " + query.getSqlLike());
- query = null;
- } catch (e) {
- console.error("duplicated calls should be ok :" + e);
- }
prefixKey(prefix: string): Query
創(chuàng)建具有指定鍵前綴的查詢條件。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
prefix | string | 是 | 表示指定的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.prefixKey("$.name");
- query.prefixKey("0");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
setSuggestIndex(index: string): Query
設(shè)置一個(gè)指定的索引,將優(yōu)先用于查詢。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
index | string | 是 | 指示要設(shè)置的索引。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.setSuggestIndex("$.name");
- query.setSuggestIndex("0");
- console.info(`query is ${query.getSqlLike()}`);
- query = null;
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
deviceId(deviceId:string):Query
添加設(shè)備ID作為key的前綴。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 指示查詢的設(shè)備ID。 |
返回值:
類型 | 說明 |
---|---|
返回Query對(duì)象。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- query.deviceId("deviceId");
- console.info(`query is ${query.getSqlLike()}`);
- } catch (e) {
- console.error(`duplicated calls should be ok.code is ${e.code},message is ${e.message}`);
- }
getSqlLike():string
獲取Query對(duì)象的查詢語句。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
string | 返回一個(gè)字段列中包含對(duì)應(yīng)子串的結(jié)果。 |
示例:
- try {
- let query = new distributedKVStore.Query();
- let sql1 = query.getSqlLike();
- console.info(`GetSqlLike sql= ${sql1}`);
- } catch (e) {
- console.error("duplicated calls should be ok : " + e);
- }
SingleKVStore數(shù)據(jù)庫實(shí)例,提供增加數(shù)據(jù)、刪除數(shù)據(jù)和訂閱數(shù)據(jù)變更、訂閱數(shù)據(jù)同步完成的方法。
在調(diào)用SingleKVStore的方法前,需要先通過getKVStore構(gòu)建一個(gè)SingleKVStore實(shí)例。
put(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback<void>): void
添加指定類型鍵值對(duì)到數(shù)據(jù)庫,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要添加數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
value | Uint8Array | string | number | boolean | 是 | 要添加數(shù)據(jù)的value,支持Uint8Array、number 、 string 、boolean,Uint8Array、string 的長度不大于MAX_VALUE_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string';
- const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err) {
- if (err != undefined) {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info("Succeeded in putting");
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
put(key: string, value: Uint8Array | string | number | boolean): Promise<void>
添加指定類型鍵值對(duì)到數(shù)據(jù)庫,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要添加數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
value | Uint8Array | string | number | boolean | 是 | 要添加數(shù)據(jù)的value,支持Uint8Array、number 、 string 、boolean,Uint8Array、string 的長度不大于MAX_VALUE_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string';
- const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
- console.info(`Succeeded in putting data.`);
- }).catch((err) => {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
putBatch(entries: Entry[], callback: AsyncCallback<void>): void
批量插入鍵值對(duì)到SingleKVStore數(shù)據(jù)庫中,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
entries | Entry[] | 是 | 表示要批量插入的鍵值對(duì)。一個(gè)entries對(duì)象中允許的最大條目個(gè)數(shù)為128個(gè)。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting Batch');
- kvStore.getEntries('batch_test_string_key', function (err, entries) {
- if (err != undefined) {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- }
- console.info('Succeeded in getting Entries');
- console.info(`entries.length: ${entries.length}`);
- console.info(`entries[0]: ${entries[0]}`);
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `);
- }
putBatch(entries: Entry[]): Promise<void>
批量插入鍵值對(duì)到SingleKVStore數(shù)據(jù)庫中,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
entries | Entry[] | 是 | 表示要批量插入的鍵值對(duì)。一個(gè)entries對(duì)象中允許的最大條目個(gè)數(shù)為128個(gè)。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting Batch');
- kvStore.getEntries('batch_test_string_key').then((entries) => {
- console.info('Succeeded in getting Entries');
- console.info(`PutBatch ${entries}`);
- }).catch((err) => {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `);
- }
delete(key: string, callback: AsyncCallback<void>): void
從數(shù)據(jù)庫中刪除指定鍵值的數(shù)據(jù),使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要?jiǎng)h除數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string';
- const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err) {
- if (err != undefined) {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting');
- kvStore.delete(KEY_TEST_STRING_ELEMENT, function (err) {
- if (err != undefined) {
- console.error(`Failed to delete.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in deleting');
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
delete(key: string): Promise<void>
從數(shù)據(jù)庫中刪除指定鍵值的數(shù)據(jù),使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要?jiǎng)h除數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string';
- const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
- console.info(`Succeeded in putting data`);
- kvStore.delete(KEY_TEST_STRING_ELEMENT).then(() => {
- console.info('Succeeded in deleting');
- }).catch((err) => {
- console.error(`Failed to delete.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
deleteBatch(keys: string[], callback: AsyncCallback<void>): void
批量刪除SingleKVStore數(shù)據(jù)庫中的鍵值對(duì),使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keys | string[] | 是 | 表示要批量刪除的鍵值對(duì)。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- let keys = [];
- for (var i = 0; i < 5; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- keys.push(key + i);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting Batch');
- kvStore.deleteBatch(keys, async function (err) {
- if (err != undefined) {
- console.error(`Failed to delete Batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in deleting Batch');
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
deleteBatch(keys: string[]): Promise<void>
批量刪除SingleKVStore數(shù)據(jù)庫中的鍵值對(duì),使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keys | string[] | 是 | 表示要批量刪除的鍵值對(duì)。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- let keys = [];
- for (var i = 0; i < 5; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- keys.push(key + i);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting Batch');
- kvStore.deleteBatch(keys).then(() => {
- console.info('Succeeded in deleting Batch');
- }).catch((err) => {
- console.error(`Failed to delete Batch.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
removeDeviceData(deviceId: string, callback: AsyncCallback<void>): void
刪除指定設(shè)備的數(shù)據(jù),使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 表示要?jiǎng)h除設(shè)備的名稱。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
- const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err) {
- console.info('Succeeded in putting data');
- const deviceId = 'no_exist_device_id';
- kvStore.removeDeviceData(deviceId, async function (err) {
- if (err == undefined) {
- console.info('succeeded in removing device data');
- } else {
- console.error(`Failed to remove device data.code is ${err.code},message is ${err.message} `);
- kvStore.get(KEY_TEST_STRING_ELEMENT, async function (err, data) {
- console.info('Succeeded in getting data');
- });
- }
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`)
- }
removeDeviceData(deviceId: string): Promise<void>
刪除指定設(shè)備的數(shù)據(jù),使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 表示要?jiǎng)h除設(shè)備的名稱。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
- const VALUE_TEST_STRING_ELEMENT = 'value-string-001';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
- console.info('Succeeded in putting data');
- }).catch((err) => {
- console.error(`Failed to put data.code is ${err.code},message is ${err.message} `);
- });
- const deviceId = 'no_exist_device_id';
- kvStore.removeDeviceData(deviceId).then(() => {
- console.info('succeeded in removing device data');
- }).catch((err) => {
- console.error(`Failed to remove device data.code is ${err.code},message is ${err.message} `);
- });
- kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => {
- console.info('Succeeded in getting data');
- }).catch((err) => {
- console.error(`Failed to get data.code is ${err.code},message is ${err.message} `);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`)
- }
get(key: string, callback: AsyncCallback<boolean | string | number | Uint8Array>): void
獲取指定鍵的值,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<boolean | string | number | Uint8Array> | 是 | 回調(diào)函數(shù)。返回獲取查詢的值。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100004 | Not found. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string';
- const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err) {
- if (err != undefined) {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info("Succeeded in putting");
- kvStore.get(KEY_TEST_STRING_ELEMENT, function (err, data) {
- if (err != undefined) {
- console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info(`Succeeded in getting data.data=${data}`);
- });
- });
- } catch (e) {
- console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
- }
get(key: string): Promise<boolean | string | number | Uint8Array>
獲取指定鍵的值,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<Uint8Array | string | boolean | number> | Promise對(duì)象。返回獲取查詢的值。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100004 | Not found. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string';
- const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
- console.info(`Succeeded in putting data`);
- kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => {
- console.info(`Succeeded in getting data.data=${data}`);
- }).catch((err) => {
- console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
- }
getEntries(keyPrefix: string, callback: AsyncCallback<Entry[]>): void
獲取匹配指定鍵前綴的所有鍵值對(duì),使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<Entry[]> | 是 | 回調(diào)函數(shù)。返回匹配指定前綴的鍵值對(duì)列表。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting Batch');
- kvStore.getEntries('batch_test_string_key', function (err, entries) {
- if (err != undefined) {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting Entries');
- console.info(`entries.length: ${entries.length}`);
- console.info(`entries[0]: ${entries[0]}`);
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `);
- }
getEntries(keyPrefix: string): Promise<Entry[]>
獲取匹配指定鍵前綴的所有鍵值對(duì),使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對(duì)象。返回匹配指定前綴的鍵值對(duì)列表。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting Batch');
- kvStore.getEntries('batch_test_string_key').then((entries) => {
- console.info('Succeeded in getting Entries');
- console.info(`PutBatch ${entries}`);
- }).catch((err) => {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `);
- }
getEntries(query: Query, callback: AsyncCallback<Entry[]>): void
獲取與指定Query對(duì)象匹配的鍵值對(duì)列表,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- var arr = new Uint8Array([21, 31]);
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_bool_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.BYTE_ARRAY,
- value: arr
- }
- }
- entries.push(entry);
- }
- console.info(`entries: {entries}`);
- kvStore.putBatch(entries, async function (err) {
- console.info('Succeeded in putting Batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getEntries(query, function (err, entries) {
- if (err != undefined) {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting Entries');
- console.info(`entries.length: ${entries.length}`);
- console.info(`entries[0]: ${entries[0]}`);
- });
- });
- } catch (e) {
- console.error(`Failed to get Entries.code is ${e.code},message is ${e.message}`);
- }
getEntries(query: Query): Promise<Entry[]>
獲取與指定Query對(duì)象匹配的鍵值對(duì)列表,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對(duì)象。返回與指定Query對(duì)象匹配的鍵值對(duì)列表。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- var arr = new Uint8Array([21, 31]);
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_bool_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.BYTE_ARRAY,
- value: arr
- }
- }
- entries.push(entry);
- }
- console.info(`entries: {entries}`);
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting Batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getEntries(query).then((entries) => {
- console.info('Succeeded in getting Entries');
- }).catch((err) => {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`)
- });
- console.info('Succeeded in getting Entries');
- } catch (e) {
- console.error(`Failed to get Entries.code is ${e.code},message is ${e.message}`);
- }
getResultSet(keyPrefix: string, callback: AsyncCallback<KVStoreResultSet>): void
從SingleKVStore數(shù)據(jù)庫中獲取具有指定前綴的結(jié)果集,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調(diào)函數(shù)。返回具有指定前綴的結(jié)果集。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting batch');
- kvStore.getResultSet('batch_test_string_key', async function (err, result) {
- if (err != undefined) {
- console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting result set');
- resultSet = result;
- kvStore.closeResultSet(resultSet, function (err) {
- if (err != undefined) {
- console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in closing result set');
- })
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
getResultSet(keyPrefix: string): Promise<KVStoreResultSet>
從SingleKVStore數(shù)據(jù)庫中獲取具有指定前綴的結(jié)果集,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對(duì)象。返回具有指定前綴的結(jié)果集。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('Succeeded in getting result set');
- resultSet = result;
- }).catch((err) => {
- console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
- });
- kvStore.closeResultSet(resultSet).then(() => {
- console.info('Succeeded in closing result set');
- }).catch((err) => {
- console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
getResultSet(query: Query, callback: AsyncCallback<KVStoreResultSet>): void
獲取與指定Query對(duì)象匹配的KVStoreResultSet對(duì)象,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | Query | 是 | 表示查詢對(duì)象。 |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調(diào)函數(shù),獲取與指定Query對(duì)象匹配的KVStoreResultSet對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSet(query, async function (err, result) {
- if (err != undefined) {
- console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting result set');
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
getResultSet(query: Query): Promise<KVStoreResultSet>
獲取與指定Query對(duì)象匹配的KVStoreResultSet對(duì)象,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對(duì)象。獲取與指定Query對(duì)象匹配的KVStoreResultSet對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSet(query).then((result) => {
- console.info('Succeeded in getting result set');
- resultSet = result;
- }).catch((err) => {
- console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
closeResultSet(resultSet: KVStoreResultSet, callback: AsyncCallback<void>): void
關(guān)閉由SingleKvStore.getResultSet返回的KVStoreResultSet對(duì)象,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
resultSet | 是 | 表示要關(guān)閉的KVStoreResultSet對(duì)象。 | |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
示例:
- try {
- let resultSet = null;
- kvStore.closeResultSet(resultSet, function (err) {
- if (err == undefined) {
- console.info('Succeeded in closing result set');
- } else {
- console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
- }
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
closeResultSet(resultSet: KVStoreResultSet): Promise<void>
關(guān)閉由SingleKvStore.getResultSet返回的KVStoreResultSet對(duì)象,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
resultSet | 是 | 表示要關(guān)閉的KVStoreResultSet對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
示例:
- try {
- let resultSet = null;
- kvStore.closeResultSet(resultSet).then(() => {
- console.info('Succeeded in closing result set');
- }).catch((err) => {
- console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
getResultSize(query: Query, callback: AsyncCallback<number>): void
獲取與指定Query對(duì)象匹配的結(jié)果數(shù),使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對(duì)象。 | |
callback | AsyncCallback<number> | 是 | 回調(diào)函數(shù)。返回與指定Query對(duì)象匹配的結(jié)果數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries, async function (err) {
- console.info('Succeeded in putting batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSize(query, async function (err, resultSize) {
- if (err != undefined) {
- console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting result set size');
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
getResultSize(query: Query): Promise<number>
獲取與指定Query對(duì)象匹配的結(jié)果數(shù),使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise對(duì)象。獲取與指定QuerV9對(duì)象匹配的結(jié)果數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSize(query).then((resultSize) => {
- console.info('Succeeded in getting result set size');
- }).catch((err) => {
- console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
backup(file:string, callback: AsyncCallback<void>):void
以指定名稱備份數(shù)據(jù)庫,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
file | string | 是 | 備份數(shù)據(jù)庫的指定名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。當(dāng)以指定名稱備份數(shù)據(jù)庫成功,err為undefined,否則為錯(cuò)誤對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- let file = "BK001";
- try {
- kvStore.backup(file, (err) => {
- if (err) {
- console.error(`Failed to backup.code is ${err.code},message is ${err.message} `);
- } else {
- console.info(`Succeeded in backupping data.`);
- }
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
backup(file:string): Promise<void>
以指定名稱備份數(shù)據(jù)庫,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
file | string | 是 | 備份數(shù)據(jù)庫的指定名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- let file = "BK001";
- try {
- kvStore.backup(file).then(() => {
- console.info(`Succeeded in backupping data.`);
- }).catch((err) => {
- console.error(`Failed to backup.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
restore(file:string, callback: AsyncCallback<void>):void
從指定的數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
file | string | 是 | 指定的數(shù)據(jù)庫文件名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。當(dāng)從指定的數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫成功,err為undefined,否則為錯(cuò)誤對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- let file = "BK001";
- try {
- kvStore.restore(file, (err) => {
- if (err) {
- console.error(`Failed to restore.code is ${err.code},message is ${err.message}`);
- } else {
- console.info(`Succeeded in restoring data.`);
- }
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
restore(file:string): Promise<void>
從指定的數(shù)據(jù)庫文件恢復(fù)數(shù)據(jù)庫,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
file | string | 是 | 指定的數(shù)據(jù)庫文件名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- let file = "BK001";
- try {
- kvStore.restore(file).then(() => {
- console.info(`Succeeded in restoring data.`);
- }).catch((err) => {
- console.error(`Failed to restore.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
deleteBackup(files:Array<string>, callback: AsyncCallback<Array<[string, number]>>):void
根據(jù)指定名稱刪除備份文件,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
files | Array<string> | 是 | 刪除備份文件所指定的名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<Array<[string, number]>> | 是 | 回調(diào)函數(shù),返回刪除備份的文件名及其處理結(jié)果。 |
示例:
- let files = ["BK001", "BK002"];
- try {
- kvStore.deleteBackup(files, (err, data) => {
- if (err) {
- console.error(`Failed to delete Backup.code is ${err.code},message is ${err.message}`);
- } else {
- console.info(`Succeed in deleting Backup.data=${data}`);
- }
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
deleteBackup(files:Array<string>): Promise<Array<[string, number]>>
根據(jù)指定名稱刪除備份文件,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
files | Array<string> | 是 | 刪除備份文件所指定的名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<Array<[string, number]>> | Promise對(duì)象,返回刪除備份的文件名及其處理結(jié)果。 |
示例:
- let files = ["BK001", "BK002"];
- try {
- kvStore.deleteBackup(files).then((data) => {
- console.info(`Succeed in deleting Backup.data=${data}`);
- }).catch((err) => {
- console.error(`Failed to delete Backup.code is ${err.code},message is ${err.message}`);
- })
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
startTransaction(callback: AsyncCallback<void>): void
啟動(dòng)SingleKVStore數(shù)據(jù)庫中的事務(wù),使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- function putBatchString(len, prefix) {
- let entries = [];
- for (var i = 0; i < len; i++) {
- var entry = {
- key: prefix + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- return entries;
- }
- try {
- var count = 0;
- kvStore.on('dataChange', 0, function (data) {
- console.info(`startTransaction 0 ${data}`);
- count++;
- });
- kvStore.startTransaction(async function (err) {
- if (err != undefined) {
- console.error(`Failed to start Transaction.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in starting Transaction');
- let entries = putBatchString(10, 'batch_test_string_key');
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting Batch');
- });
- });
- } catch (e) {
- console.error(`Failed to start Transaction.code is ${e.code},message is ${e.message}`);
- }
startTransaction(): Promise<void>
啟動(dòng)SingleKVStore數(shù)據(jù)庫中的事務(wù),使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- try {
- var count = 0;
- kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_ALL, function (data) {
- console.info(`startTransaction 0 ${data}`);
- count++;
- });
- kvStore.startTransaction().then(async () => {
- console.info('Succeeded in starting Transaction');
- }).catch((err) => {
- console.error(`Failed to start Transaction.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to start Transaction.code is ${e.code},message is ${e.message}`);
- }
commit(callback: AsyncCallback<void>): void
提交SingleKVStore數(shù)據(jù)庫中的事務(wù),使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- try {
- kvStore.commit(function (err) {
- if (err == undefined) {
- console.info('Succeeded in committing');
- } else {
- console.error(`Failed to commit.code is ${err.code},message is ${err.message}`);
- }
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
commit(): Promise<void>
提交SingleKVStore數(shù)據(jù)庫中的事務(wù),使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- try {
- kvStore.commit().then(async () => {
- console.info('Succeeded in committing');
- }).catch((err) => {
- console.error(`Failed to commit.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
rollback(callback: AsyncCallback<void>): void
在SingleKVStore數(shù)據(jù)庫中回滾事務(wù),使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- try {
- kvStore.rollback(function (err) {
- if (err == undefined) {
- console.info('Succeeded in rolling back');
- } else {
- console.error(`Failed to rollback.code is ${err.code},message is ${err.message}`);
- }
- });
- }catch(e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
rollback(): Promise<void>
在SingleKVStore數(shù)據(jù)庫中回滾事務(wù),使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- try {
- kvStore.rollback().then(async () => {
- console.info('Succeeded in rolling back');
- }).catch((err) => {
- console.error(`Failed to rollback.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
enableSync(enabled: boolean, callback: AsyncCallback<void>): void
設(shè)定是否開啟同步,使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
enabled | boolean | 是 | 設(shè)定是否開啟同步,true表示開啟同步,false表示不啟用同步。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
示例:
- try {
- kvStore.enableSync(true, function (err) {
- if (err == undefined) {
- console.info('Succeeded in enabling sync');
- } else {
- console.error(`Failed to enable sync.code is ${err.code},message is ${err.message}`);
- }
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
enableSync(enabled: boolean): Promise<void>
設(shè)定是否開啟同步,使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
enabled | boolean | 是 | 設(shè)定是否開啟同步,true表示開啟同步,false表示不啟用同步。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
示例:
- try {
- kvStore.enableSync(true).then(() => {
- console.info('Succeeded in enabling sync');
- }).catch((err) => {
- console.error(`Failed to enable sync.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
setSyncRange(localLabels: string[], remoteSupportLabels: string[], callback: AsyncCallback<void>): void
設(shè)置同步范圍標(biāo)簽,使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
localLabels | string[] | 是 | 表示本地設(shè)備的同步標(biāo)簽。 |
remoteSupportLabels | string[] | 是 | 表示要同步數(shù)據(jù)的設(shè)備的同步標(biāo)簽。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
示例:
- try {
- const localLabels = ['A', 'B'];
- const remoteSupportLabels = ['C', 'D'];
- kvStore.setSyncRange(localLabels, remoteSupportLabels, function (err) {
- if (err != undefined) {
- console.error(`Failed to set syncRange.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in setting syncRange');
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
setSyncRange(localLabels: string[], remoteSupportLabels: string[]): Promise<void>
設(shè)置同步范圍標(biāo)簽,使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
localLabels | string[] | 是 | 表示本地設(shè)備的同步標(biāo)簽。 |
remoteSupportLabels | string[] | 是 | 表示要同步數(shù)據(jù)的設(shè)備的同步標(biāo)簽。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
示例:
- try {
- const localLabels = ['A', 'B'];
- const remoteSupportLabels = ['C', 'D'];
- kvStore.setSyncRange(localLabels, remoteSupportLabels).then(() => {
- console.info('Succeeded in setting syncRange');
- }).catch((err) => {
- console.error(`Failed to set syncRange.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
setSyncParam(defaultAllowedDelayMs: number, callback: AsyncCallback<void>): void
設(shè)置數(shù)據(jù)庫同步允許的默認(rèn)延遲,使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
defaultAllowedDelayMs | number | 是 | 表示數(shù)據(jù)庫同步允許的默認(rèn)延遲,以毫秒為單位。 |
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
示例:
- try {
- const defaultAllowedDelayMs = 500;
- kvStore.setSyncParam(defaultAllowedDelayMs, function (err) {
- if (err != undefined) {
- console.error(`Failed to set syncParam.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in setting syncParam');
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
setSyncParam(defaultAllowedDelayMs: number): Promise<void>
設(shè)置數(shù)據(jù)庫同步允許的默認(rèn)延遲,使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
defaultAllowedDelayMs | number | 是 | 表示數(shù)據(jù)庫同步允許的默認(rèn)延遲,以毫秒為單位。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結(jié)果的Promise對(duì)象。 |
示例:
- try {
- const defaultAllowedDelayMs = 500;
- kvStore.setSyncParam(defaultAllowedDelayMs).then(() => {
- console.info('Succeeded in setting syncParam');
- }).catch((err) => {
- console.error(`Failed to set syncParam.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
sync(deviceIds: string[], mode: SyncMode, delayMs?: number): void
在手動(dòng)同步方式下,觸發(fā)數(shù)據(jù)庫同步。
此接口能力在HarmonyOS 3.1Release暫不支持。
需要權(quán)限: ohos.permission.DISTRIBUTED_DATASYNC。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceIds | string[] | 是 | 同一組網(wǎng)環(huán)境下,需要同步的設(shè)備的deviceId列表。 |
mode | 是 | 同步模式。 | |
delayMs | number | 否 | 可選參數(shù),允許延時(shí)時(shí)間,單位:ms(毫秒),默認(rèn)為0。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100004 | Not found. |
示例:
- const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
- const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
- try {
- kvStore.on('syncComplete', function (data) {
- console.info('Sync dataChange');
- });
- kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err) {
- if (err != undefined) {
- console.error(`Failed to sync.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting data');
- const deviceIds = ['deviceList'];
- const mode = distributedKVStore.SyncMode.PULL_ONLY;
- kvStore.sync(deviceIds, mode, 1000);
- });
- } catch (e) {
- console.error(`Failed to sync.code is ${e.code},message is ${e.message}`);
- }
sync(deviceIds: string[], query: Query, mode: SyncMode, delayMs?: number): void
在手動(dòng)同步方式下,觸發(fā)數(shù)據(jù)庫同步,此方法為同步方法。
此接口能力在HarmonyOS 3.1Release暫不支持。
需要權(quán)限: ohos.permission.DISTRIBUTED_DATASYNC。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100004 | Not found. |
示例:
- const KEY_TEST_SYNC_ELEMENT = 'key_test_sync';
- const VALUE_TEST_SYNC_ELEMENT = 'value-string-001';
- try {
- kvStore.on('syncComplete', function (data) {
- console.info('Sync dataChange');
- });
- kvStore.put(KEY_TEST_SYNC_ELEMENT + 'testSync101', VALUE_TEST_SYNC_ELEMENT, function (err) {
- if (err != undefined) {
- console.error(`Failed to sync.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting data');
- const deviceIds = ['deviceList'];
- const mode = distributedKVStore.SyncMode.PULL_ONLY;
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- query.deviceId('localDeviceId');
- kvStore.sync(deviceIds, query, mode, 1000);
- });
- } catch (e) {
- console.error(`Failed to sync.code is ${e.code},message is ${e.message}`);
- }
on(event: 'dataChange', type: SubscribeType, listener: Callback<ChangeNotification>): void
訂閱指定類型的數(shù)據(jù)變更通知。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'dataChange',表示數(shù)據(jù)變更事件。 |
type | 是 | 表示訂閱的類型。 | |
listener | Callback<ChangeNotification> | 是 | 回調(diào)函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100001 | Over max subscribe limits. |
15100005 | Database or result set already closed. |
示例:
- try {
- kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_LOCAL, function (data) {
- console.info(`dataChange callback call data: ${data}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
on(event: 'syncComplete', syncCallback: Callback<Array<[string, number]>>): void
訂閱同步完成事件回調(diào)通知。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'syncComplete',表示同步完成事件。 |
syncCallback | Callback<Array<[string, number]>> | 是 | 回調(diào)函數(shù)。用于向調(diào)用方發(fā)送同步結(jié)果的回調(diào)。 |
示例:
- const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
- const VALUE_TEST_FLOAT_ELEMENT = 321.12;
- try {
- kvStore.on('syncComplete', function (data) {
- console.info(`syncComplete ${data}`);
- });
- kvStore.put(KEY_TEST_FLOAT_ELEMENT, VALUE_TEST_FLOAT_ELEMENT).then(() => {
- console.info('succeeded in putting');
- }).catch((err) => {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to subscribe syncComplete.code is ${e.code},message is ${e.message}`);
- }
off(event:'dataChange', listener?: Callback<ChangeNotification>): void
取消訂閱數(shù)據(jù)變更通知。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 取消訂閱的事件名,固定為'dataChange',表示數(shù)據(jù)變更事件。 |
listener | Callback<ChangeNotification> | 否 | 取消訂閱的函數(shù)。如不設(shè)置callback,則取消所有已訂閱的函數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- class KvstoreModel {
- call(data) {
- console.info(`dataChange : ${data}`);
- }
- subscribeDataChange() {
- try {
- if (kvStore != null) {
- kvStore.on('dataChange', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, this.call);
- }
- } catch (err) {
- console.error(`Failed to subscribeDataChange.code is ${err.code},message is ${err.message}`);
- }
- }
- unsubscribeDataChange() {
- try {
- if (kvStore != null) {
- kvStore.off('dataChange', this.call);
- }
- } catch (err) {
- console.error(`Failed to unsubscribeDataChange.code is ${err.code},message is ${err.message}`);
- }
- }
- }
off(event: 'syncComplete', syncCallback?: Callback<Array<[string, number]>>): void
取消訂閱同步完成事件回調(diào)通知。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 取消訂閱的事件名,固定為'syncComplete',表示同步完成事件。 |
syncCallback | Callback<Array<[string, number]>> | 否 | 取消訂閱的函數(shù)。如不設(shè)置callback,則取消所有已訂閱的函數(shù)。 |
示例:
- class KvstoreModel {
- call(data) {
- console.info(`syncComplete : ${data}`);
- }
- subscribeDataChange() {
- try {
- if (kvStore != null) {
- kvStore.on('syncComplete', distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_REMOTE, this.call);
- }
- } catch (err) {
- console.error(`Failed to subscribeDataChange.code is ${err.code},message is ${err.message}`);
- }
- }
- unsubscribeDataChange() {
- try {
- if (kvStore != null) {
- kvStore.off('dsyncComplete', this.call);
- }
- } catch (err) {
- console.error(`Failed to unsubscribeDataChange.code is ${err.code},message is ${err.message}`);
- }
- }
- }
getSecurityLevel(callback: AsyncCallback<SecurityLevel>): void
獲取數(shù)據(jù)庫的安全級(jí)別,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<SecurityLevel> | 是 | 回調(diào)函數(shù)。返回?cái)?shù)據(jù)庫的安全級(jí)別。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- try {
- kvStore.getSecurityLevel(function (err, data) {
- if (err != undefined) {
- console.error(`Failed to get SecurityLevel.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting securityLevel');
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
getSecurityLevel(): Promise<SecurityLevel>
獲取數(shù)據(jù)庫的安全級(jí)別,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise<SecurityLevel> | Promise對(duì)象。返回?cái)?shù)據(jù)庫的安全級(jí)別。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100005 | Database or result set already closed. |
示例:
- try {
- kvStore.getSecurityLevel().then((data) => {
- console.info('Succeeded in getting securityLevel');
- }).catch((err) => {
- console.error(`Failed to get SecurityLevel.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
設(shè)備協(xié)同數(shù)據(jù)庫,繼承自SingleKVStore,提供查詢數(shù)據(jù)和同步數(shù)據(jù)的方法。
設(shè)備協(xié)同數(shù)據(jù)庫,以設(shè)備維度對(duì)數(shù)據(jù)進(jìn)行區(qū)分,每臺(tái)設(shè)備僅能寫入和修改本設(shè)備的數(shù)據(jù),其它設(shè)備的數(shù)據(jù)對(duì)其是只讀的,無法修改其它設(shè)備的數(shù)據(jù)。
比如,可以使用設(shè)備協(xié)同數(shù)據(jù)庫實(shí)現(xiàn)設(shè)備間的圖片分享,可以查看其他設(shè)備的圖片,但無法修改和刪除其他設(shè)備的圖片。
在調(diào)用DeviceKVStore的方法前,需要先通過getKVStore構(gòu)建一個(gè)DeviceKVStore實(shí)例。
get(key: string, callback: AsyncCallback<boolean | string | number | Uint8Array>): void
獲取本設(shè)備指定鍵的值,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<boolean | string | number | Uint8Array> | 是 | 回調(diào)函數(shù)。返回獲取查詢的值。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100004 | Not found. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string';
- const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err) {
- if (err != undefined) {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info("Succeeded in putting");
- kvStore.get(KEY_TEST_STRING_ELEMENT, function (err, data) {
- if (err != undefined) {
- console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info(`Succeeded in getting data.data=${data}`);
- });
- });
- } catch (e) {
- console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
- }
get(key: string): Promise<boolean | string | number | Uint8Array>
獲取本設(shè)備指定鍵的值,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<Uint8Array | string | boolean | number> | Promise對(duì)象。返回獲取查詢的值。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100004 | Not found. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string';
- const VALUE_TEST_STRING_ELEMENT = 'value-test-string';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(() => {
- console.info(`Succeeded in putting data.data=${data}`);
- kvStore.get(KEY_TEST_STRING_ELEMENT).then((data) => {
- console.info(`Succeeded in getting data.data=${data}`);
- }).catch((err) => {
- console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
- }
get(deviceId: string, key: string, callback: AsyncCallback<boolean | string | number | Uint8Array>): void
獲取與指定設(shè)備ID和key匹配的string值,使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標(biāo)識(shí)要查詢其數(shù)據(jù)的設(shè)備。 |
key | string | 是 | 表示要查詢key值的鍵。 |
callback | AsyncCallback<boolean|string|number|Uint8Array> | 是 | 回調(diào)函數(shù),返回匹配給定條件的字符串值。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100004 | Not found. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
- const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting');
- kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT, function (err, data) {
- if (err != undefined) {
- console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting');
- });
- })
- } catch (e) {
- console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
- }
get(deviceId: string, key: string): Promise<boolean | string | number | Uint8Array>
獲取與指定設(shè)備ID和key匹配的string值,使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標(biāo)識(shí)要查詢其數(shù)據(jù)的設(shè)備。 |
key | string | 是 | 表示要查詢key值的鍵。 |
返回值:
類型 | 說明 |
---|---|
Promise<boolean|string|number|Uint8Array> | Promise對(duì)象。返回匹配給定條件的字符串值。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100004 | Not found. |
15100005 | Database or result set already closed. |
示例:
- const KEY_TEST_STRING_ELEMENT = 'key_test_string_2';
- const VALUE_TEST_STRING_ELEMENT = 'value-string-002';
- try {
- kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT).then(async () => {
- console.info('Succeeded in putting');
- kvStore.get('localDeviceId', KEY_TEST_STRING_ELEMENT).then((data) => {
- console.info('Succeeded in getting');
- }).catch((err) => {
- console.error(`Failed to get.code is ${err.code},message is ${err.message}`);
- });
- }).catch((error) => {
- console.error(`Failed to put.code is ${error.code},message is ${error.message}`);
- });
- } catch (e) {
- console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
- }
getEntries(keyPrefix: string, callback: AsyncCallback<Entry[]>): void
獲取匹配本設(shè)備指定鍵前綴的所有鍵值對(duì),使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<Entry[]> | 是 | 回調(diào)函數(shù)。返回匹配指定前綴的鍵值對(duì)列表。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting Batch');
- kvStore.getEntries('batch_test_string_key', function (err, entries) {
- if (err != undefined) {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting Entries');
- console.info(`entries.length: ${entries.length}`);
- console.info(`entries[0]: ${entries[0]}`);
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `);
- }
getEntries(keyPrefix: string): Promise<Entry[]>
獲取匹配本設(shè)備指定鍵前綴的所有鍵值對(duì),使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對(duì)象。返回匹配指定前綴的鍵值對(duì)列表。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting Batch');
- kvStore.getEntries('batch_test_string_key').then((entries) => {
- console.info('Succeeded in getting Entries');
- console.info(`PutBatch ${entries}`);
- }).catch((err) => {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to put Batch.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message} `);
- }
getEntries(deviceId: string, keyPrefix: string, callback: AsyncCallback<Entry[]>): void
獲取與指定設(shè)備ID和key前綴匹配的所有鍵值對(duì),使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標(biāo)識(shí)要查詢其數(shù)據(jù)的設(shè)備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<Entry[]> | 是 | 回調(diào)函數(shù),返回滿足給定條件的所有鍵值對(duì)的列表。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- console.info(`entries : ${entries}`);
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting batch');
- kvStore.getEntries('localDeviceId', 'batch_test_string_key', function (err, entries) {
- if (err != undefined) {
- console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting entries');
- console.info(`entries.length: ${entries.length}`);
- console.info(`entries[0]: ${entries[0]}`);
- });
- });
- } catch (e) {
- console.error(`Failed to put batch.code is ${e.code},message is ${e.message}`);
- }
getEntries(deviceId: string, keyPrefix: string): Promise<Entry[]>
獲取與指定設(shè)備ID和key前綴匹配的所有鍵值對(duì),使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標(biāo)識(shí)要查詢其數(shù)據(jù)的設(shè)備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對(duì)象。返回匹配給定條件的所有鍵值對(duì)的列表。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- kvStore.getEntries('localDeviceId', 'batch_test_string_key').then((entries) => {
- console.info('Succeeded in getting entries');
- console.info(`entries.length: ${entries.length}`);
- console.info(`entries[0]: ${entries[0]}`);
- console.info(`entries[0].value: ${entries[0].value}`);
- console.info(`entries[0].value.value: ${entries[0].value.value}`);
- }).catch((err) => {
- console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to put batch.code is ${e.code},message is ${e.message}`);
- }
getEntries(query: Query, callback: AsyncCallback<Entry[]>): void
獲取本設(shè)備與指定Query對(duì)象匹配的鍵值對(duì)列表,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- var arr = new Uint8Array([21, 31]);
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_bool_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.BYTE_ARRAY,
- value: arr
- }
- }
- entries.push(entry);
- }
- console.info(`entries: {entries}`);
- kvStore.putBatch(entries, async function (err) {
- console.info('Succeeded in putting Batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getEntries(query, function (err, entries) {
- if (err != undefined) {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting Entries');
- console.info(`entries.length: ${entries.length}`);
- console.info(`entries[0]: ${entries[0]}`);
- });
- });
- } catch (e) {
- console.error(`Failed to get Entries.code is ${e.code},message is ${e.message}`);
- }
getEntries(query: Query): Promise<Entry[]>
獲取本設(shè)備與指定Query對(duì)象匹配的鍵值對(duì)列表,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對(duì)象。返回本設(shè)備與指定Query對(duì)象匹配的鍵值對(duì)列表。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- var arr = new Uint8Array([21, 31]);
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_bool_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.BYTE_ARRAY,
- value: arr
- }
- }
- entries.push(entry);
- }
- console.info(`entries: {entries}`);
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting Batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getEntries(query).then((entries) => {
- console.info('Succeeded in getting Entries');
- }).catch((err) => {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to get Entries.code is ${err.code},message is ${err.message}`)
- });
- console.info('Succeeded in getting Entries');
- } catch (e) {
- console.error(`Failed to get Entries.code is ${e.code},message is ${e.message}`);
- }
getEntries(deviceId: string, query: Query, callback: AsyncCallback<Entry[]>): void
獲取與指定設(shè)備ID和Query對(duì)象匹配的鍵值對(duì)列表,使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- var arr = new Uint8Array([21, 31]);
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_bool_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.BYTE_ARRAY,
- value: arr
- }
- }
- entries.push(entry);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting batch');
- var query = new distributedKVStore.Query();
- query.deviceId('localDeviceId');
- query.prefixKey("batch_test");
- kvStore.getEntries('localDeviceId', query, function (err, entries) {
- if (err != undefined) {
- console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting entries');
- console.info(`entries.length: ${entries.length}`);
- console.info(`entries[0]: ${entries[0]}`);
- })
- });
- console.info('Succeeded in getting entries');
- } catch (e) {
- console.error(`Failed to get entries.code is ${e.code},message is ${e.message}`);
- }
getEntries(deviceId: string, query: Query): Promise<Entry[]>
獲取與指定設(shè)備ID和Query對(duì)象匹配的鍵值對(duì)列表,使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 鍵值對(duì)所屬的設(shè)備ID。 |
query | 是 | 表示查詢對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對(duì)象。返回與指定設(shè)備ID和Query對(duì)象匹配的鍵值對(duì)列表。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- var arr = new Uint8Array([21, 31]);
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_bool_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.BYTE_ARRAY,
- value: arr
- }
- }
- entries.push(entry);
- }
- console.info(`entries: ${entries}`);
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- var query = new distributedKVStore.Query();
- query.deviceId('localDeviceId');
- query.prefixKey("batch_test");
- kvStore.getEntries('localDeviceId', query).then((entries) => {
- console.info('Succeeded in getting entries');
- }).catch((err) => {
- console.error(`Failed to get entries.code is ${err.code},message is ${err.message}`);
- });
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- console.info('Succeeded in getting entries');
- } catch (e) {
- console.error(`Failed to get entries.code is ${e.code},message is ${e.message}`);
- }
getResultSet(keyPrefix: string, callback: AsyncCallback<KVStoreResultSet>): void
從DeviceKVStore數(shù)據(jù)庫中獲取本設(shè)備具有指定前綴的結(jié)果集,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調(diào)函數(shù)。返回具有指定前綴的結(jié)果集。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting batch');
- kvStore.getResultSet('batch_test_string_key', async function (err, result) {
- if (err != undefined) {
- console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting result set');
- resultSet = result;
- kvStore.closeResultSet(resultSet, function (err) {
- if (err != undefined) {
- console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in closing result set');
- })
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
- }
getResultSet(keyPrefix: string): Promise<KVStoreResultSet>
從DeviceKVStore數(shù)據(jù)庫中獲取本設(shè)備具有指定前綴的結(jié)果集,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對(duì)象。返回具有指定前綴的結(jié)果集。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- kvStore.getResultSet('batch_test_string_key').then((result) => {
- console.info('Succeeded in getting result set');
- resultSet = result;
- }).catch((err) => {
- console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
- });
- kvStore.closeResultSet(resultSet).then(() => {
- console.info('Succeeded in closing result set');
- }).catch((err) => {
- console.error(`Failed to close resultset.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
getResultSet(deviceId: string, keyPrefix: string, callback: AsyncCallback<KVStoreResultSet>): void
獲取與指定設(shè)備ID和key前綴匹配的KVStoreResultSet對(duì)象,使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標(biāo)識(shí)要查詢其數(shù)據(jù)的設(shè)備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調(diào)函數(shù)。返回與指定設(shè)備ID和key前綴匹配的KVStoreResultSet對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- kvStore.getResultSet('localDeviceId', 'batch_test_string_key', async function (err, result) {
- if (err != undefined) {
- console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting resultSet');
- resultSet = result;
- kvStore.closeResultSet(resultSet, function (err) {
- if (err != undefined) {
- console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in closing resultSet');
- })
- });
- } catch (e) {
- console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
- }
getResultSet(deviceId: string, keyPrefix: string): Promise<KVStoreResultSet>
獲取與指定設(shè)備ID和key前綴匹配的KVStoreResultSet對(duì)象,使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標(biāo)識(shí)要查詢其數(shù)據(jù)的設(shè)備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對(duì)象。返回與指定設(shè)備ID和key前綴匹配的KVStoreResultSet對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- kvStore.getResultSet('localDeviceId', 'batch_test_string_key').then((result) => {
- console.info('Succeeded in getting resultSet');
- resultSet = result;
- }).catch((err) => {
- console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
- });
- kvStore.closeResultSet(resultSet).then(() => {
- console.info('Succeeded in closing resultSet');
- }).catch((err) => {
- console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
- }
getResultSet(deviceId: string, query: Query, callback: AsyncCallback<KVStoreResultSet>): void
獲取與指定設(shè)備ID和Query對(duì)象匹配的KVStoreResultSet對(duì)象,使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KVStoreResultSet對(duì)象所屬的設(shè)備ID。 |
query | 是 | 表示查詢對(duì)象。 | |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調(diào)函數(shù)。返回與指定設(shè)備ID和Query對(duì)象匹配的KVStoreResultSet對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSet('localDeviceId', query, async function (err, result) {
- if (err != undefined) {
- console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting resultSet');
- resultSet = result;
- kvStore.closeResultSet(resultSet, function (err) {
- if (err != undefined) {
- console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in closing resultSet');
- })
- });
- });
- } catch (e) {
- console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
- }
getResultSet(deviceId: string, query: Query): Promise<KVStoreResultSet>
獲取與指定設(shè)備ID和Query對(duì)象匹配的KVStoreResultSet對(duì)象,使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KVStoreResultSet對(duì)象所屬的設(shè)備ID。 |
query | 是 | 表示查詢對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對(duì)象。返回與指定設(shè)備ID和Query對(duì)象匹配的KVStoreResultSet對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSet('localDeviceId', query).then((result) => {
- console.info('Succeeded in getting resultSet');
- resultSet = result;
- }).catch((err) => {
- console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
- });
- query.deviceId('localDeviceId');
- console.info("GetResultSet " + query.getSqlLike());
- kvStore.closeResultSet(resultSet).then(() => {
- console.info('Succeeded in closing resultSet');
- }).catch((err) => {
- console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
- }
getResultSet(query: Query): Promise<KVStoreResultSet>
獲取與本設(shè)備指定Query對(duì)象匹配的KVStoreResultSet對(duì)象,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對(duì)象。獲取與本設(shè)備指定Query對(duì)象匹配的KVStoreResultSet對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSet(query).then((result) => {
- console.info('Succeeded in getting result set');
- resultSet = result;
- }).catch((err) => {
- console.error(`Failed to get resultset.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
getResultSet(query: Query, callback:AsyncCallback<KVStoreResultSet>): void
獲取與本設(shè)備指定Query對(duì)象匹配的KVStoreResultSet對(duì)象,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對(duì)象。 | |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調(diào)函數(shù),獲取與指定Predicates對(duì)象匹配的KVStoreResultSet對(duì)象。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let resultSet;
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSet(query, async function (err, result) {
- if (err != undefined) {
- console.error(`Failed to get resultSet.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting resultSet');
- resultSet = result;
- kvStore.closeResultSet(resultSet, function (err) {
- if (err != undefined) {
- console.error(`Failed to close resultSet.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in closing resultSet');
- })
- });
- });
- } catch (e) {
- console.error(`Failed to get resultSet.code is ${e.code},message is ${e.message}`);
- }
getResultSize(query: Query, callback: AsyncCallback<number>): void
獲取與本設(shè)備指定Query對(duì)象匹配的結(jié)果數(shù),使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對(duì)象。 | |
callback | AsyncCallback<number> | 是 | 回調(diào)函數(shù)。返回與本設(shè)備指定Query對(duì)象匹配的結(jié)果數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries, async function (err) {
- console.info('Succeeded in putting batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSize(query, async function (err, resultSize) {
- if (err != undefined) {
- console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting result set size');
- });
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
getResultSize(query: Query): Promise<number>
獲取與本設(shè)備指定Query對(duì)象匹配的結(jié)果數(shù),使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise對(duì)象。獲取與本設(shè)備指定Query對(duì)象匹配的結(jié)果數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSize(query).then((resultSize) => {
- console.info('Succeeded in getting result set size');
- }).catch((err) => {
- console.error(`Failed to get result size.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.code}`);
- }
getResultSize(deviceId: string, query: Query, callback: AsyncCallback<number>): void;
獲取與指定設(shè)備ID和Query對(duì)象匹配的結(jié)果數(shù),使用callback異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KVStoreResultSet對(duì)象所屬的設(shè)備ID。 |
query | 是 | 表示查詢對(duì)象。 | |
callback | AsyncCallback<number> | 是 | 回調(diào)函數(shù)。返回與指定設(shè)備ID和Query對(duì)象匹配的結(jié)果數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries, async function (err) {
- if (err != undefined) {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in putting batch');
- const query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSize('localDeviceId', query, async function (err, resultSize) {
- if (err != undefined) {
- console.error(`Failed to get resultSize.code is ${err.code},message is ${err.message}`);
- return;
- }
- console.info('Succeeded in getting resultSize');
- });
- });
- } catch (e) {
- console.error(`Failed to get resultSize.code is ${e.code},message is ${e.message}`);
- }
getResultSize(deviceId: string, query: Query): Promise<number>
獲取與指定設(shè)備ID和Query對(duì)象匹配的結(jié)果數(shù),使用Promise異步回調(diào)。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KVStoreResultSet對(duì)象所屬的設(shè)備ID。 |
query | 是 | 表示查詢對(duì)象。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise對(duì)象。返回與指定設(shè)備ID和Query對(duì)象匹配的結(jié)果數(shù)。 |
錯(cuò)誤碼:
以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見分布式鍵值數(shù)據(jù)庫錯(cuò)誤碼。
錯(cuò)誤碼ID | 錯(cuò)誤信息 |
---|---|
15100003 | Database corrupted. |
15100005 | Database or result set already closed. |
示例:
- try {
- let entries = [];
- for (var i = 0; i < 10; i++) {
- var key = 'batch_test_string_key';
- var entry = {
- key: key + i,
- value: {
- type: distributedKVStore.ValueType.STRING,
- value: 'batch_test_string_value'
- }
- }
- entries.push(entry);
- }
- kvStore.putBatch(entries).then(async () => {
- console.info('Succeeded in putting batch');
- }).catch((err) => {
- console.error(`Failed to put batch.code is ${err.code},message is ${err.message}`);
- });
- var query = new distributedKVStore.Query();
- query.prefixKey("batch_test");
- kvStore.getResultSize('localDeviceId', query).then((resultSize) => {
- console.info('Succeeded in getting resultSize');
- }).catch((err) => {
- console.error(`Failed to get resultSize.code is ${err.code},message is ${err.message}`);
- });
- } catch (e) {
- console.error(`Failed to get resultSize.code is ${e.code},message is ${e.message}`);
更多建議: