分布式鍵值數(shù)據(jù)庫為應用程序提供不同設備間數(shù)據(jù)庫的分布式協(xié)同能力。通過調用分布式鍵值數(shù)據(jù)庫各個接口,應用程序可將數(shù)據(jù)保存到分布式鍵值數(shù)據(jù)庫中,并可對分布式鍵值數(shù)據(jù)庫中的數(shù)據(jù)進行增加、刪除、修改、查詢等操作。
該模塊提供以下分布式鍵值數(shù)據(jù)庫相關的常用功能:
本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。
分布式鍵值數(shù)據(jù)庫當前僅支持本地功能,分布式功能暫不支持。
提供KVManager實例的配置信息,包括調用方的包名和應用的上下文。
系統(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 | 設備協(xié)同數(shù)據(jù)庫中key允許的最大長度,單位字節(jié)。 |
MAX_STORE_ID_LENGTH | 128 | 數(shù)據(jù)庫標識符允許的最大長度,單位字節(jié)。 |
MAX_QUERY_LENGTH | 512000 | 最大查詢長度,單位字節(jié)。 |
MAX_BATCH_SIZE | 128 | 最大批處理操作數(shù)量。 |
數(shù)據(jù)類型枚舉。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 說明 |
---|---|
STRING | 表示值類型為字符串。 |
INTEGER | 表示值類型為整數(shù)。 |
FLOAT | 表示值類型為浮點數(shù)。 |
BYTE_ARRAY | 表示值類型為字節(jié)數(shù)組。 |
BOOLEAN | 表示值類型為布爾值。 |
DOUBLE | 表示值類型為雙浮點數(shù)。 |
存儲在數(shù)據(jù)庫中的值對象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
type | 是 | 值類型。 | |
value | Uint8Array | string | number | boolean | 是 | 值。 |
存儲在數(shù)據(jù)庫中的鍵值對。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 鍵值。 |
value | 是 | 值對象。 |
數(shù)據(jù)變更時通知的對象,包括數(shù)據(jù)插入的數(shù)據(jù)、更新的數(shù)據(jù)、刪除的數(shù)據(jù)和設備ID。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
同步模式枚舉。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 說明 |
---|---|
PULL_ONLY | 表示只能從遠端拉取數(shù)據(jù)到本端。 |
PUSH_ONLY | 表示只能從本端推送數(shù)據(jù)到遠端。 |
PUSH_PULL | 表示從本端推送數(shù)據(jù)到遠端,然后從遠端拉取數(shù)據(jù)到本端。 |
訂閱類型枚舉。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 說明 |
---|---|
SUBSCRIBE_TYPE_LOCAL | 表示訂閱本地數(shù)據(jù)變更。 |
SUBSCRIBE_TYPE_REMOTE | 表示訂閱遠端數(shù)據(jù)變更。 此接口能力在HarmonyOS 3.1Release暫不支持。 |
SUBSCRIBE_TYPE_ALL | 表示訂閱遠端和本地數(shù)據(jù)變更。 此接口能力在HarmonyOS 3.1Release暫不支持。 |
分布式鍵值數(shù)據(jù)庫類型枚舉。
名稱 | 說明 |
---|---|
DEVICE_COLLABORATION | 表示多設備協(xié)同數(shù)據(jù)庫。 數(shù)據(jù)庫特點: 數(shù)據(jù)以設備的維度管理,不存在沖突;支持按照設備的維度查詢數(shù)據(jù)。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
SINGLE_VERSION | 表示單版本數(shù)據(jù)庫。 數(shù)據(jù)庫特點: 數(shù)據(jù)不分設備,設備之間修改相同的key會覆蓋。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core |
數(shù)據(jù)庫的安全級別枚舉。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
名稱 | 說明 |
---|---|
S1 | 表示數(shù)據(jù)庫的安全級別為低級別,數(shù)據(jù)的泄露、篡改、破壞、銷毀可能會給個人或組織導致有限的不利影響。 例如,性別、國籍,用戶申請記錄等。 |
S2 | 表示數(shù)據(jù)庫的安全級別為中級別,數(shù)據(jù)的泄露、篡改、破壞、銷毀可能會給個人或組織導致嚴重的不利影響。 例如,個人詳細通信地址,姓名昵稱等。 |
S3 | 表示數(shù)據(jù)庫的安全級別為高級別,數(shù)據(jù)的泄露、篡改、破壞、銷毀可能會給個人或組織導致嚴峻的不利影響。 例如,個人實時精確定位信息、運動軌跡等。 |
S4 | 表示數(shù)據(jù)庫的安全級別為關鍵級別,業(yè)界法律法規(guī)中定義的特殊數(shù)據(jù)類型,涉及個人的最私密領域的信息或者一旦泄露、篡改、破壞、銷毀可能會給個人或組織造成重大的不利影響數(shù)據(jù)。 例如,政治觀點、宗教、和哲學信仰、工會成員資格、基因數(shù)據(jù)、生物信息、健康和性生活狀況、性取向等或設備認證鑒權、個人的信用卡等財務信息。 |
用于提供創(chuàng)建數(shù)據(jù)庫的配置信息。
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
createIfMissing | boolean | 否 | 當數(shù)據(jù)庫文件不存在時是否創(chuàng)建數(shù)據(jù)庫,默認為true,即創(chuàng)建。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core |
encrypt | boolean | 否 | 設置數(shù)據(jù)庫文件是否加密,默認為false,即不加密。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core |
backup | boolean | 否 | 設置數(shù)據(jù)庫文件是否備份,默認為true,即備份。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core |
autoSync | boolean | 否 | 設置數(shù)據(jù)庫文件是否自動同步。默認為false,即手動同步;設置為true時,表示自動同步。 此接口能力在HarmonyOS 3.1Release暫不支持。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core 需要權限: ohos.permission.DISTRIBUTED_DATASYNC |
kvStoreType | 否 | 設置要創(chuàng)建的數(shù)據(jù)庫類型,默認為DEVICE_COLLABORATION,即多設備協(xié)同數(shù)據(jù)庫。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core | |
securityLevel | 是 | 設置數(shù)據(jù)庫安全級別。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core | |
schema | 否 | 設置定義存儲在數(shù)據(jù)庫中的值,默認為undefined,即不使用Schema。 系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore |
表示數(shù)據(jù)庫模式,可以在創(chuàng)建或打開數(shù)據(jù)庫時創(chuàng)建Schema對象并將它們放入Options中。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
root | 是 | 是 | 表示json根對象。 | |
indexes | Array<string> | 是 | 是 | 表示json類型的字符串數(shù)組。 |
mode | number | 是 | 是 | 表示Schema的模式。 |
skip | number | 是 | 是 | Schema的跳躍大小。 |
constructor()
用于創(chuàng)建Schema實例的構造函數(shù)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
表示 Schema 實例的節(jié)點,提供定義存儲在數(shù)據(jù)庫中的值的方法。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
nullable | boolean | 是 | 是 | 表示數(shù)據(jù)庫字段是否可以為空。 |
default | string | 是 | 是 | 表示Fieldnode的默認值。 |
type | number | 是 | 是 | 表示指定節(jié)點對應數(shù)據(jù)類型的值。 |
constructor(name: string)
用于創(chuàng)建帶有string字段FieldNode實例的構造函數(shù)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
name | string | 是 | FieldNode的值。 |
appendChild(child: FieldNode): boolean
在當前 FieldNode 中添加一個子節(jié)點。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
child | 是 | 要附加的域節(jié)點。 |
返回值:
類型 | 說明 |
---|---|
boolean | 返回true表示子節(jié)點成功添加到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)建一個KVManager對象實例,用于管理數(shù)據(jù)庫對象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
config | 是 | 提供KVManager實例的配置信息,包括調用方的包名和用戶信息。 |
返回值:
類型 | 說明 |
---|---|
返回創(chuàng)建的KVManager對象實例。 |
示例:
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ù)據(jù)庫的相關信息。在調用KVManager的方法前,需要先通過createKVManager構建一個KVManager實例。
getKVStore<T>(storeId: string, options: Options, callback: AsyncCallback<T>): void
通過指定Options和storeId,創(chuàng)建并獲取分布式鍵值數(shù)據(jù)庫,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
storeId | string | 是 | 數(shù)據(jù)庫唯一標識符,長度不大于MAX_STORE_ID_LENGTH。 |
options | 是 | 創(chuàng)建分布式鍵值實例的配置信息。 | |
callback | AsyncCallback<T> | 是 | 回調函數(shù)。返回創(chuàng)建的分布式鍵值數(shù)據(jù)庫實例(根據(jù)kvStoreType的不同,可以創(chuàng)建SingleKVStore實例和DeviceKVStore實例)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
storeId | string | 是 | 數(shù)據(jù)庫唯一標識符,長度不大于MAX_STORE_ID_LENGTH。 |
options | 是 | 創(chuàng)建分布式鍵值實例的配置信息。 |
返回值:
類型 | 說明 |
---|---|
Promise<T> | Promise對象。返回創(chuàng)建的分布式鍵值數(shù)據(jù)庫實例(根據(jù)kvStoreType的不同,可以創(chuàng)建SingleKVStore實例和DeviceKVStore實例。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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的值關閉指定的分布式鍵值數(shù)據(jù)庫,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數(shù)據(jù)庫方的包名。 |
storeId | string | 是 | 要關閉的數(shù)據(jù)庫唯一標識符,長度不大于MAX_STORE_ID_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調函數(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的值關閉指定的分布式鍵值數(shù)據(jù)庫,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數(shù)據(jù)庫方的包名。 |
storeId | string | 是 | 要關閉的數(shù)據(jù)庫唯一標識符,長度不大于MAX_STORE_ID_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
示例:
- 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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數(shù)據(jù)庫方的包名。 |
storeId | string | 是 | 要刪除的數(shù)據(jù)庫唯一標識符,長度不大于MAX_STORE_ID_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數(shù)據(jù)庫方的包名。 |
storeId | string | 是 | 要刪除的數(shù)據(jù)庫唯一標識符,長度不大于MAX_STORE_ID_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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)建的且沒有調用deleteKVStore方法刪除的分布式鍵值數(shù)據(jù)庫的storeId,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數(shù)據(jù)庫方的包名。 |
callback | AsyncCallback<string[]> | 是 | 回調函數(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)建的且沒有調用deleteKVStore方法刪除的分布式鍵值數(shù)據(jù)庫的storeId,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
appId | string | 是 | 所調用數(shù)據(jù)庫方的包名。 |
返回值:
類型 | 說明 |
---|---|
Promise<string[]> | Promise對象。返回所有創(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
訂閱服務狀態(tài)變更通知。如果服務終止,需要重新注冊數(shù)據(jù)變更通知和同步完成事件回調通知,并且同步操作會返回失敗。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'distributedDataServiceDie',即服務狀態(tài)變更事件。 |
deathCallback | Callback<void> | 是 | 回調函數(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
取消訂閱服務狀態(tài)變更通知。參數(shù)中的deathCallback必須是已經(jīng)訂閱過的deathCallback,否則會取消訂閱失敗。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 取消訂閱的事件名,固定為'distributedDataServiceDie',即服務狀態(tài)變更事件。 |
deathCallback | Callback<void> | 否 | 回調函數(shù)。如果該參數(shù)不填,那么會將之前訂閱過的所有的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ù)庫結果集的相關方法,包括查詢和移動數(shù)據(jù)讀取位置等。同時允許打開的結果集的最大數(shù)量為8個。
在調用KVStoreResultSet的方法前,需要先通過getKVStore構建一個SingleKVStore或者DeviceKVStore實例。
getCount(): number
獲取結果集中的總行數(shù)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
number | 返回數(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
獲取結果集中當前的讀取位置。讀取位置會因moveToFirst、moveToLast等操作而發(fā)生變化。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
number | 返回當前讀取位置。取值范圍>= -1,值為 -1 時表示還未開始讀取,值為 0 時表示第一行。 |
示例:
- 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
將讀取位置移動到第一行。如果結果集為空,則返回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
將讀取位置移動到最后一行。如果結果集為空,則返回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
將讀取位置移動到下一行。如果結果集為空,則返回false。適用于全量獲取數(shù)據(jù)庫結果集的場景。
系統(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
將讀取位置移動到上一行。如果結果集為空,則返回false。適用于全量獲取數(shù)據(jù)庫結果集的場景。
系統(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
將讀取位置移動到當前位置的相對偏移量。即當前游標位置向下偏移 offset 行。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
offset | number | 是 | 表示與當前位置的相對偏移量,負偏移表示向后移動,正偏移表示向前移動。 |
返回值:
類型 | 說明 |
---|---|
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); //若當前位置為0,將讀取位置從絕對位置為0的位置移動2行,即移動到絕對位置為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 移動到絕對位置。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
position | number | 是 | 表示絕對位置。 |
返回值:
類型 | 說明 |
---|---|
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
從當前位置獲取對應的鍵值對。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回鍵值對。 |
示例:
- 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ù)據(jù)庫中的數(shù)據(jù)和添加謂詞的方法。一個Query對象中謂詞數(shù)量上限為256個。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
constructor()
用于創(chuàng)建Schema實例的構造函數(shù)。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
reset(): Query
重置Query對象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回重置的Query對象。 |
示例:
- 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
構造一個Query對象來查詢具有指定字段的條目,其值等于指定的值。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string|boolean | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有指定字段且值不等于指定值的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string|boolean | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有大于指定值的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string|boolean | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有小于指定值的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有指定字段且值大于或等于指定值的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有指定字段且值小于或等于指定值的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | number|string | 是 | 表示指定的值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有值為null的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有指定字段的條目,其值在指定的值列表中。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | number[] | 是 | 表示指定的值列表。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有指定字段的條目,其值在指定的字符串值列表中。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | string[] | 是 | 表示指定的字符串值列表。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有指定字段的條目,該字段的值不在指定的值列表中。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | number[] | 是 | 表示指定的值列表。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有指定字段且值不在指定字符串值列表中的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
valueList | string[] | 是 | 表示指定的字符串值列表。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有與指定字符串值相似的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | string | 是 | 表示指定的字符串值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有與指定字符串值不相似的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
value | string | 是 | 表示指定的字符串值。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個帶有與條件的查詢對象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回查詢對象。 |
示例:
- 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
構造一個帶有或條件的Query對象。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回查詢對象。 |
示例:
- 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
構造一個Query對象,將查詢結果按升序排序。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象,將查詢結果按降序排序。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象來指定結果的數(shù)量和開始位置。該接口必須要在Query對象查詢和升降序等操作之后調用,調用limit接口后,不可再對Query對象進行查詢和升降序等操作。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
total | number | 是 | 表示指定的結果數(shù)。 |
offset | number | 是 | 表示起始位置。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
構造一個Query對象以查詢具有值不為null的指定字段的條目。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
fieId | string | 是 | 表示指定字段,不能包含' ^ '。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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)建一個帶有左括號的查詢條件組。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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)建一個帶有右括號的查詢條件組。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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對象。 |
示例:
- 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
設置一個指定的索引,將優(yōu)先用于查詢。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
index | string | 是 | 指示要設置的索引。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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
添加設備ID作為key的前綴。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 指示查詢的設備ID。 |
返回值:
類型 | 說明 |
---|---|
返回Query對象。 |
示例:
- 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對象的查詢語句。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
string | 返回一個字段列中包含對應子串的結果。 |
示例:
- 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ù)據(jù)、刪除數(shù)據(jù)和訂閱數(shù)據(jù)變更、訂閱數(shù)據(jù)同步完成的方法。
在調用SingleKVStore的方法前,需要先通過getKVStore構建一個SingleKVStore實例。
put(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback<void>): void
添加指定類型鍵值對到數(shù)據(jù)庫,使用callback異步回調。
系統(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> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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>
添加指定類型鍵值對到數(shù)據(jù)庫,使用Promise異步回調。
系統(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> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
批量插入鍵值對到SingleKVStore數(shù)據(jù)庫中,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
entries | Entry[] | 是 | 表示要批量插入的鍵值對。一個entries對象中允許的最大條目個數(shù)為128個。 |
callback | AsyncCallback<void> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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>
批量插入鍵值對到SingleKVStore數(shù)據(jù)庫中,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
entries | Entry[] | 是 | 表示要批量插入的鍵值對。一個entries對象中允許的最大條目個數(shù)為128個。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要刪除數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要刪除數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中的鍵值對,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keys | string[] | 是 | 表示要批量刪除的鍵值對。 |
callback | AsyncCallback<void> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中的鍵值對,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keys | string[] | 是 | 表示要批量刪除的鍵值對。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)據(jù),使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 表示要刪除設備的名稱。 |
callback | AsyncCallback<void> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)據(jù),使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 表示要刪除設備的名稱。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<boolean | string | number | Uint8Array> | 是 | 回調函數(shù)。返回獲取查詢的值。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<Uint8Array | string | boolean | number> | Promise對象。返回獲取查詢的值。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取匹配指定鍵前綴的所有鍵值對,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<Entry[]> | 是 | 回調函數(shù)。返回匹配指定前綴的鍵值對列表。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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[]>
獲取匹配指定鍵前綴的所有鍵值對,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對象。返回匹配指定前綴的鍵值對列表。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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對象匹配的鍵值對列表,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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對象匹配的鍵值對列表,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對象。返回與指定Query對象匹配的鍵值對列表。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中獲取具有指定前綴的結果集,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調函數(shù)。返回具有指定前綴的結果集。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中獲取具有指定前綴的結果集,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對象。返回具有指定前綴的結果集。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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對象匹配的KVStoreResultSet對象,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | Query | 是 | 表示查詢對象。 |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調函數(shù),獲取與指定Query對象匹配的KVStoreResultSet對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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對象匹配的KVStoreResultSet對象,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對象。獲取與指定Query對象匹配的KVStoreResultSet對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
關閉由SingleKvStore.getResultSet返回的KVStoreResultSet對象,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
resultSet | 是 | 表示要關閉的KVStoreResultSet對象。 | |
callback | AsyncCallback<void> | 是 | 回調函數(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>
關閉由SingleKvStore.getResultSet返回的KVStoreResultSet對象,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
resultSet | 是 | 表示要關閉的KVStoreResultSet對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
示例:
- 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對象匹配的結果數(shù),使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對象。 | |
callback | AsyncCallback<number> | 是 | 回調函數(shù)。返回與指定Query對象匹配的結果數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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對象匹配的結果數(shù),使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise對象。獲取與指定QuerV9對象匹配的結果數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
file | string | 是 | 備份數(shù)據(jù)庫的指定名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調函數(shù)。當以指定名稱備份數(shù)據(jù)庫成功,err為undefined,否則為錯誤對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
file | string | 是 | 備份數(shù)據(jù)庫的指定名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫文件恢復數(shù)據(jù)庫,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
file | string | 是 | 指定的數(shù)據(jù)庫文件名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回調函數(shù)。當從指定的數(shù)據(jù)庫文件恢復數(shù)據(jù)庫成功,err為undefined,否則為錯誤對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫文件恢復數(shù)據(jù)庫,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
file | string | 是 | 指定的數(shù)據(jù)庫文件名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
files | Array<string> | 是 | 刪除備份文件所指定的名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<Array<[string, number]>> | 是 | 回調函數(shù),返回刪除備份的文件名及其處理結果。 |
示例:
- 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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
files | Array<string> | 是 | 刪除備份文件所指定的名稱,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<Array<[string, number]>> | Promise對象,返回刪除備份的文件名及其處理結果。 |
示例:
- 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
啟動SingleKVStore數(shù)據(jù)庫中的事務,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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>
啟動SingleKVStore數(shù)據(jù)庫中的事務,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中的事務,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中的事務,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中回滾事務,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中回滾事務,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
設定是否開啟同步,使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
enabled | boolean | 是 | 設定是否開啟同步,true表示開啟同步,false表示不啟用同步。 |
callback | AsyncCallback<void> | 是 | 回調函數(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>
設定是否開啟同步,使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
enabled | boolean | 是 | 設定是否開啟同步,true表示開啟同步,false表示不啟用同步。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
示例:
- 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
設置同步范圍標簽,使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
localLabels | string[] | 是 | 表示本地設備的同步標簽。 |
remoteSupportLabels | string[] | 是 | 表示要同步數(shù)據(jù)的設備的同步標簽。 |
callback | AsyncCallback<void> | 是 | 回調函數(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>
設置同步范圍標簽,使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
localLabels | string[] | 是 | 表示本地設備的同步標簽。 |
remoteSupportLabels | string[] | 是 | 表示要同步數(shù)據(jù)的設備的同步標簽。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
示例:
- 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ù)據(jù)庫同步允許的默認延遲,使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
defaultAllowedDelayMs | number | 是 | 表示數(shù)據(jù)庫同步允許的默認延遲,以毫秒為單位。 |
callback | AsyncCallback<void> | 是 | 回調函數(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ù)據(jù)庫同步允許的默認延遲,使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
defaultAllowedDelayMs | number | 是 | 表示數(shù)據(jù)庫同步允許的默認延遲,以毫秒為單位。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 無返回結果的Promise對象。 |
示例:
- 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
在手動同步方式下,觸發(fā)數(shù)據(jù)庫同步。
此接口能力在HarmonyOS 3.1Release暫不支持。
需要權限: ohos.permission.DISTRIBUTED_DATASYNC。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceIds | string[] | 是 | 同一組網(wǎng)環(huán)境下,需要同步的設備的deviceId列表。 |
mode | 是 | 同步模式。 | |
delayMs | number | 否 | 可選參數(shù),允許延時時間,單位:ms(毫秒),默認為0。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
在手動同步方式下,觸發(fā)數(shù)據(jù)庫同步,此方法為同步方法。
此接口能力在HarmonyOS 3.1Release暫不支持。
需要權限: ohos.permission.DISTRIBUTED_DATASYNC。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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> | 是 | 回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
訂閱同步完成事件回調通知。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 訂閱的事件名,固定為'syncComplete',表示同步完成事件。 |
syncCallback | Callback<Array<[string, number]>> | 是 | 回調函數(shù)。用于向調用方發(fā)送同步結果的回調。 |
示例:
- 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ù)。如不設置callback,則取消所有已訂閱的函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
取消訂閱同步完成事件回調通知。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
event | string | 是 | 取消訂閱的事件名,固定為'syncComplete',表示同步完成事件。 |
syncCallback | Callback<Array<[string, number]>> | 否 | 取消訂閱的函數(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ù)庫的安全級別,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<SecurityLevel> | 是 | 回調函數(shù)。返回數(shù)據(jù)庫的安全級別。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫的安全級別,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
類型 | 說明 |
---|---|
Promise<SecurityLevel> | Promise對象。返回數(shù)據(jù)庫的安全級別。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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}`);
- }
設備協(xié)同數(shù)據(jù)庫,繼承自SingleKVStore,提供查詢數(shù)據(jù)和同步數(shù)據(jù)的方法。
設備協(xié)同數(shù)據(jù)庫,以設備維度對數(shù)據(jù)進行區(qū)分,每臺設備僅能寫入和修改本設備的數(shù)據(jù),其它設備的數(shù)據(jù)對其是只讀的,無法修改其它設備的數(shù)據(jù)。
比如,可以使用設備協(xié)同數(shù)據(jù)庫實現(xiàn)設備間的圖片分享,可以查看其他設備的圖片,但無法修改和刪除其他設備的圖片。
在調用DeviceKVStore的方法前,需要先通過getKVStore構建一個DeviceKVStore實例。
get(key: string, callback: AsyncCallback<boolean | string | number | Uint8Array>): void
獲取本設備指定鍵的值,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<boolean | string | number | Uint8Array> | 是 | 回調函數(shù)。返回獲取查詢的值。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
key | string | 是 | 要查詢數(shù)據(jù)的key,不能為空且長度不大于MAX_KEY_LENGTH。 |
返回值:
類型 | 說明 |
---|---|
Promise<Uint8Array | string | boolean | number> | Promise對象。返回獲取查詢的值。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取與指定設備ID和key匹配的string值,使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數(shù)據(jù)的設備。 |
key | string | 是 | 表示要查詢key值的鍵。 |
callback | AsyncCallback<boolean|string|number|Uint8Array> | 是 | 回調函數(shù),返回匹配給定條件的字符串值。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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>
獲取與指定設備ID和key匹配的string值,使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數(shù)據(jù)的設備。 |
key | string | 是 | 表示要查詢key值的鍵。 |
返回值:
類型 | 說明 |
---|---|
Promise<boolean|string|number|Uint8Array> | Promise對象。返回匹配給定條件的字符串值。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取匹配本設備指定鍵前綴的所有鍵值對,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<Entry[]> | 是 | 回調函數(shù)。返回匹配指定前綴的鍵值對列表。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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[]>
獲取匹配本設備指定鍵前綴的所有鍵值對,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對象。返回匹配指定前綴的鍵值對列表。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取與指定設備ID和key前綴匹配的所有鍵值對,使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數(shù)據(jù)的設備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<Entry[]> | 是 | 回調函數(shù),返回滿足給定條件的所有鍵值對的列表。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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[]>
獲取與指定設備ID和key前綴匹配的所有鍵值對,使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數(shù)據(jù)的設備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對象。返回匹配給定條件的所有鍵值對的列表。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取本設備與指定Query對象匹配的鍵值對列表,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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對象匹配的鍵值對列表,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對象。返回本設備與指定Query對象匹配的鍵值對列表。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取與指定設備ID和Query對象匹配的鍵值對列表,使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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[]>
獲取與指定設備ID和Query對象匹配的鍵值對列表,使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 鍵值對所屬的設備ID。 |
query | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<Entry[]> | Promise對象。返回與指定設備ID和Query對象匹配的鍵值對列表。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中獲取本設備具有指定前綴的結果集,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調函數(shù)。返回具有指定前綴的結果集。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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ù)庫中獲取本設備具有指定前綴的結果集,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對象。返回具有指定前綴的結果集。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取與指定設備ID和key前綴匹配的KVStoreResultSet對象,使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數(shù)據(jù)的設備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調函數(shù)。返回與指定設備ID和key前綴匹配的KVStoreResultSet對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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>
獲取與指定設備ID和key前綴匹配的KVStoreResultSet對象,使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | 標識要查詢其數(shù)據(jù)的設備。 |
keyPrefix | string | 是 | 表示要匹配的鍵前綴。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對象。返回與指定設備ID和key前綴匹配的KVStoreResultSet對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取與指定設備ID和Query對象匹配的KVStoreResultSet對象,使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KVStoreResultSet對象所屬的設備ID。 |
query | 是 | 表示查詢對象。 | |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調函數(shù)。返回與指定設備ID和Query對象匹配的KVStoreResultSet對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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>
獲取與指定設備ID和Query對象匹配的KVStoreResultSet對象,使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KVStoreResultSet對象所屬的設備ID。 |
query | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對象。返回與指定設備ID和Query對象匹配的KVStoreResultSet對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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>
獲取與本設備指定Query對象匹配的KVStoreResultSet對象,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<KVStoreResultSet> | Promise對象。獲取與本設備指定Query對象匹配的KVStoreResultSet對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取與本設備指定Query對象匹配的KVStoreResultSet對象,使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對象。 | |
callback | AsyncCallback<KVStoreResultSet> | 是 | 回調函數(shù),獲取與指定Predicates對象匹配的KVStoreResultSet對象。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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
獲取與本設備指定Query對象匹配的結果數(shù),使用callback異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對象。 | |
callback | AsyncCallback<number> | 是 | 回調函數(shù)。返回與本設備指定Query對象匹配的結果數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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對象匹配的結果數(shù),使用Promise異步回調。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
query | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise對象。獲取與本設備指定Query對象匹配的結果數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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;
獲取與指定設備ID和Query對象匹配的結果數(shù),使用callback異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KVStoreResultSet對象所屬的設備ID。 |
query | 是 | 表示查詢對象。 | |
callback | AsyncCallback<number> | 是 | 回調函數(shù)。返回與指定設備ID和Query對象匹配的結果數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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>
獲取與指定設備ID和Query對象匹配的結果數(shù),使用Promise異步回調。
此接口能力在HarmonyOS 3.1Release暫不支持。
系統(tǒng)能力: SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | string | 是 | KVStoreResultSet對象所屬的設備ID。 |
query | 是 | 表示查詢對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise對象。返回與指定設備ID和Query對象匹配的結果數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見分布式鍵值數(shù)據(jù)庫錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
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}`);
更多建議: