1e41f4b71Sopenharmony_ci# @ohos.data.dataShare (数据共享)(系统接口) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci**DataShare**用于应用管理其自身数据,同时支持同个设备上不同应用间的数据共享。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci> 9e41f4b71Sopenharmony_ci> - 本模块接口为系统接口。 10e41f4b71Sopenharmony_ci> 11e41f4b71Sopenharmony_ci> - 本模块接口仅可在Stage模型下使用。 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci## 导入模块 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci```ts 17e41f4b71Sopenharmony_ciimport { dataShare } from '@kit.ArkData'; 18e41f4b71Sopenharmony_ci``` 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci## dataShare.createDataShareHelper 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_cicreateDataShareHelper(context: Context, uri: string, callback: AsyncCallback<DataShareHelper>): void 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci创建DataShareHelper实例。使用callback异步回调。 25e41f4b71Sopenharmony_ci 26e41f4b71Sopenharmony_ci> **说明:** 27e41f4b71Sopenharmony_ci> 28e41f4b71Sopenharmony_ci> 组件启动规则详见:[组件启动规则(Stage模型)](../../application-models/component-startup-rules.md)。 29e41f4b71Sopenharmony_ci 30e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci**参数:** 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 35e41f4b71Sopenharmony_ci| -------- | -------------------------------------------------------- | ---- | ------------------------------------------------------------ | 36e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md#context) | 是 | 应用的上下文环境。 | 37e41f4b71Sopenharmony_ci| uri | string | 是 | 要连接的服务端应用的路径。 | 38e41f4b71Sopenharmony_ci| callback | AsyncCallback<[DataShareHelper](#datasharehelper)> | 是 | 回调函数。当创建DataShareHelper实例成功,err为undefined,data为获取到的DataShareHelper实例;否则为错误对象。 | 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci**错误码:** 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 45e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | 46e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 47e41f4b71Sopenharmony_ci| 15700010 | The DataShareHelper is not initialized successfully. | 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci**示例:** 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_ci```ts 52e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 53e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 56e41f4b71Sopenharmony_cilet dataShareHelper: dataShare.DataShareHelper | undefined = undefined; 57e41f4b71Sopenharmony_cilet context = getContext(UIAbility); 58e41f4b71Sopenharmony_citry { 59e41f4b71Sopenharmony_ci dataShare.createDataShareHelper(context, uri, (err:BusinessError, data:dataShare.DataShareHelper) => { 60e41f4b71Sopenharmony_ci if (err !== undefined) { 61e41f4b71Sopenharmony_ci console.error(`createDataShareHelper error: code: ${err.code}, message: ${err.message} `); 62e41f4b71Sopenharmony_ci return; 63e41f4b71Sopenharmony_ci } 64e41f4b71Sopenharmony_ci console.info("createDataShareHelper succeed, data : " + data); 65e41f4b71Sopenharmony_ci dataShareHelper = data; 66e41f4b71Sopenharmony_ci }); 67e41f4b71Sopenharmony_ci} catch (err) { 68e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 69e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 70e41f4b71Sopenharmony_ci console.error(`createDataShareHelper error: code: ${code}, message: ${message} `); 71e41f4b71Sopenharmony_ci}; 72e41f4b71Sopenharmony_ci``` 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci## dataShare.createDataShareHelper<sup>10+</sup> 75e41f4b71Sopenharmony_cicreateDataShareHelper(context: Context, uri: string, options: DataShareHelperOptions, callback: AsyncCallback<DataShareHelper>): void 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci创建DataShareHelper实例。使用callback异步回调。 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci> **说明:** 80e41f4b71Sopenharmony_ci> 81e41f4b71Sopenharmony_ci> 组件启动规则详见:[组件启动规则(Stage模型)](../../application-models/component-startup-rules.md)。 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 84e41f4b71Sopenharmony_ci 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 87e41f4b71Sopenharmony_ci| -------- | -------------------------------------------------------- | ---- | ------------------------------------------------------------ | 88e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md#context) | 是 | 应用的上下文环境。 | 89e41f4b71Sopenharmony_ci| uri | string | 是 | 要连接的服务端应用的路径。 | 90e41f4b71Sopenharmony_ci| options | [DataShareHelperOptions](#datasharehelperoptions10)| 是 | 可选配置。指定[DataShareHelper](#datasharehelper)是否在代理模式下。| 91e41f4b71Sopenharmony_ci| callback | AsyncCallback<[DataShareHelper](#datasharehelper)> | 是 | 回调函数。当创建DataShareHelper实例成功,err为undefined,data为获取到的DataShareHelper实例;否则为错误对象。 | 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci**错误码:** 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 98e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | 99e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 100e41f4b71Sopenharmony_ci| 15700010 | The DataShareHelper is not initialized successfully. | 101e41f4b71Sopenharmony_ci 102e41f4b71Sopenharmony_ci**示例:** 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ci```ts 105e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 106e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_cilet uri = ("datashareproxy://com.samples.datasharetest.DataShare"); 109e41f4b71Sopenharmony_cilet dataShareHelper: dataShare.DataShareHelper | undefined = undefined; 110e41f4b71Sopenharmony_cilet context = getContext(UIAbility); 111e41f4b71Sopenharmony_citry { 112e41f4b71Sopenharmony_ci dataShare.createDataShareHelper(context, uri, {isProxy : true}, (err:BusinessError, data:dataShare.DataShareHelper) => { 113e41f4b71Sopenharmony_ci if (err !== undefined) { 114e41f4b71Sopenharmony_ci console.error(`createDataShareHelper error: code: ${err.code}, message: ${err.message} `); 115e41f4b71Sopenharmony_ci return; 116e41f4b71Sopenharmony_ci } 117e41f4b71Sopenharmony_ci console.info("createDataShareHelper succeed, data : " + data); 118e41f4b71Sopenharmony_ci dataShareHelper = data; 119e41f4b71Sopenharmony_ci }); 120e41f4b71Sopenharmony_ci} catch (err) { 121e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 122e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 123e41f4b71Sopenharmony_ci console.error(`createDataShareHelper error: code: ${code}, message: ${message} `); 124e41f4b71Sopenharmony_ci}; 125e41f4b71Sopenharmony_ci``` 126e41f4b71Sopenharmony_ci## dataShare.createDataShareHelper 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_cicreateDataShareHelper(context: Context, uri: string, options?: DataShareHelperOptions): Promise<DataShareHelper> 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci创建DataShareHelper实例。使用Promise异步回调。 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci> **说明:** 133e41f4b71Sopenharmony_ci> 134e41f4b71Sopenharmony_ci> 组件启动规则详见:[组件启动规则(Stage模型)](../../application-models/component-startup-rules.md)。 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci**参数:** 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 141e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------- | ---- | ------------------------------ | 142e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md#context) | 是 | 应用的上下文环境。 | 143e41f4b71Sopenharmony_ci| uri | string | 是 | 要连接的服务端应用的路径。 | 144e41f4b71Sopenharmony_ci| options<sup>10+</sup> | [DataShareHelperOptions](#datasharehelperoptions10) | 否 | 可选配置。从API version 10开始支持此参数,如果不设置,则表示[DataShareHelper](#datasharehelper)不在代理模式下。| 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci**返回值:** 147e41f4b71Sopenharmony_ci 148e41f4b71Sopenharmony_ci| 类型 | 说明 | 149e41f4b71Sopenharmony_ci| -------------------------------------------------- | -------------------------------------- | 150e41f4b71Sopenharmony_ci| Promise<[DataShareHelper](#datasharehelper)> | Promise对象。返回DataShareHelper实例。 | 151e41f4b71Sopenharmony_ci 152e41f4b71Sopenharmony_ci**错误码:** 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 157e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | 158e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 159e41f4b71Sopenharmony_ci| 15700010 | The DataShareHelper is not initialized successfully. | 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci**示例:** 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci```ts 164e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 165e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_cilet uri = ("datashareproxy://com.samples.datasharetest.DataShare"); 168e41f4b71Sopenharmony_cilet dataShareHelper: dataShare.DataShareHelper | undefined = undefined; 169e41f4b71Sopenharmony_cilet context = getContext(UIAbility); 170e41f4b71Sopenharmony_citry { 171e41f4b71Sopenharmony_ci dataShare.createDataShareHelper(context, uri, {isProxy : true}).then((data: dataShare.DataShareHelper) => { 172e41f4b71Sopenharmony_ci console.info("createDataShareHelper succeed, data : " + data); 173e41f4b71Sopenharmony_ci dataShareHelper = data; 174e41f4b71Sopenharmony_ci }). catch((err: BusinessError) => { 175e41f4b71Sopenharmony_ci console.error(`createDataShareHelper error: code: ${err.code}, message: ${err.message} `); 176e41f4b71Sopenharmony_ci }); 177e41f4b71Sopenharmony_ci} catch (err) { 178e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 179e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 180e41f4b71Sopenharmony_ci console.error(`createDataShareHelper error: code: ${code}, message: ${message} `); 181e41f4b71Sopenharmony_ci}; 182e41f4b71Sopenharmony_ci``` 183e41f4b71Sopenharmony_ci 184e41f4b71Sopenharmony_ci## dataShare.enableSilentProxy<sup>11+</sup> 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_cienableSilentProxy(context: Context, uri?: string): Promise<void> 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci开启静默访问。使用Promise异步回调。 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci使用规则: 191e41f4b71Sopenharmony_ci - 数据提供方调用此接口,来开启静默访问功能。 192e41f4b71Sopenharmony_ci - 此接口设置的开启结果在校验的时候是搭配data_share_config.json文件中isSilentProxyEnable字段进行工作的。支持的配置可参考[data_share_config.json配置](../../database/share-data-by-datashareextensionability.md)。 193e41f4b71Sopenharmony_ci - 此接口生效在调用datashareHelper相关接口过程中,如果此接口有开启过相关uri,那么会按照此接口的配置来开启静默访问。如果此接口未调用过,则会读取data_share_config.json中的配置来校验Datashare的开启状态。 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_ci**参数:** 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 200e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------- | ---- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 201e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md#context) | 是 | 应用的上下文环境。 | 202e41f4b71Sopenharmony_ci| uri | string | 否 | 要开启的数据提供方的数据路径。<br />1、全局开关状态:入参不带uri、uri为undefined、uri为null,会清空掉之前设置的所有uri开关状态,开启数据提供方静默访问。<br />2、精准开关状态:uri的入参为固定的值,仅开启该uri对应的静默访问。<br />在调用datashareHelper相关接口时,优先精准匹配uri的开关状态。如果匹配不到,继续匹配全局的开关状态。<br />uri格式:datashare:///{bundleName}/{moduleName}/{storeName}/{tableName} | 203e41f4b71Sopenharmony_ci 204e41f4b71Sopenharmony_ci**返回值:** 205e41f4b71Sopenharmony_ci 206e41f4b71Sopenharmony_ci| 类型 | 说明 | 207e41f4b71Sopenharmony_ci| -------------------------------------------------- | -------------------------------------- | 208e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci**错误码:** 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 215e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | 216e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 217e41f4b71Sopenharmony_ci| 15700011 | The URI is not exist. | 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ci**示例:** 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci```ts 222e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 223e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_cilet uri = ("datashare:///com.acts.datasharetest/entry/DB00/TBL00?Proxy=true"); 226e41f4b71Sopenharmony_cilet context = getContext(UIAbility); 227e41f4b71Sopenharmony_cidataShare.enableSilentProxy(context, uri).then(() => { 228e41f4b71Sopenharmony_ci console.info("enableSilentProxy succeed"); 229e41f4b71Sopenharmony_ci}). catch((err: BusinessError) => { 230e41f4b71Sopenharmony_ci console.error(`enableSilentProxy error: code: ${err.code}, message: ${err.message} `); 231e41f4b71Sopenharmony_ci}); 232e41f4b71Sopenharmony_ci``` 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci## dataShare.disableSilentProxy<sup>11+</sup> 235e41f4b71Sopenharmony_ci 236e41f4b71Sopenharmony_cidisableSilentProxy(context: Context, uri?: string): Promise<void> 237e41f4b71Sopenharmony_ci 238e41f4b71Sopenharmony_ci关闭静默访问。使用Promise异步回调。 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ci使用规则: 241e41f4b71Sopenharmony_ci - 数据提供方调用此接口,来关闭静默访问功能。 242e41f4b71Sopenharmony_ci - 此接口设置的关闭结果在校验的时候是搭配data_share_config.json文件中isSilentProxyEnable字段进行工作的。支持的配置可参考[data_share_config.json配置](../../database/share-data-by-datashareextensionability.md)。 243e41f4b71Sopenharmony_ci - 此接口生效在调用datashareHelper相关接口过程中,如果此接口有关闭过相关uri,那么会按照此接口的配置来关闭静默访问。如果此接口未调用过,则会读取data_share_config.json中的配置来校验Datashare的关闭状态。 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 246e41f4b71Sopenharmony_ci 247e41f4b71Sopenharmony_ci**参数:** 248e41f4b71Sopenharmony_ci 249e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 250e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------- | ---- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 251e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md#context) | 是 | 应用的上下文环境。 | 252e41f4b71Sopenharmony_ci| uri | string | 否 | 要关闭的数据提供方的数据路径。<br />1、全局开关状态:入参不带uri、uri为undefined、uri为null,会清空掉之前设置的uri开关状态,关闭数据提供方静默访问。<br />2、精准开关状态:uri的入参为固定的值,仅关闭该uri对应的静默访问。<br />在调用datashareHelper相关接口时,优先精准匹配uri的开关状态。如果匹配不到,继续匹配全局的开关状态。<br />uri格式:datashare:///{bundleName}/{moduleName}/{storeName}/{tableName} | 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci**返回值:** 255e41f4b71Sopenharmony_ci 256e41f4b71Sopenharmony_ci| 类型 | 说明 | 257e41f4b71Sopenharmony_ci| -------------------------------------------------- | -------------------------------------- | 258e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 259e41f4b71Sopenharmony_ci 260e41f4b71Sopenharmony_ci**错误码:** 261e41f4b71Sopenharmony_ci 262e41f4b71Sopenharmony_ci错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 263e41f4b71Sopenharmony_ci 264e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 265e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | 266e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 267e41f4b71Sopenharmony_ci| 15700011 | The URI is not exist. | 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci**示例:** 270e41f4b71Sopenharmony_ci 271e41f4b71Sopenharmony_ci```ts 272e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 273e41f4b71Sopenharmony_ciimport { UIAbility } from '@kit.AbilityKit'; 274e41f4b71Sopenharmony_ci 275e41f4b71Sopenharmony_cilet uri = ("datashare:///com.acts.datasharetest/entry/DB00/TBL00?Proxy=true"); 276e41f4b71Sopenharmony_cilet context = getContext(UIAbility); 277e41f4b71Sopenharmony_cidataShare.disableSilentProxy(context, uri).then(() => { 278e41f4b71Sopenharmony_ci console.info("disableSilentProxy succeed"); 279e41f4b71Sopenharmony_ci}). catch((err: BusinessError) => { 280e41f4b71Sopenharmony_ci console.error(`disableSilentProxy error: code: ${err.code}, message: ${err.message} `); 281e41f4b71Sopenharmony_ci}); 282e41f4b71Sopenharmony_ci``` 283e41f4b71Sopenharmony_ci 284e41f4b71Sopenharmony_ci## DataShareHelperOptions<sup>10+</sup> 285e41f4b71Sopenharmony_ci 286e41f4b71Sopenharmony_ci指定[DataShareHelper](#datasharehelper)是否在代理模式下。 287e41f4b71Sopenharmony_ci 288e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 289e41f4b71Sopenharmony_ci 290e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 291e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 292e41f4b71Sopenharmony_ci| isProxy | boolean | 否 | 默认为false,如果为true,则要创建的[DataShareHelper](#datasharehelper)处于代理模式,所有操作都不会打开数据提供者APP,除非数据库不存在,当数据库不存在时,[createDataShareHelper](#datasharecreatedatasharehelper10)会拉起数据提供者创建数据库。 | 293e41f4b71Sopenharmony_ci 294e41f4b71Sopenharmony_ci## TemplateId<sup>10+</sup> 295e41f4b71Sopenharmony_ci 296e41f4b71Sopenharmony_ci标记模板的数据结构,TemplateId是在[addTemplate](#addtemplate10)中自动生成的,在[addTemplate](#addtemplate10)后,可以使用模板id来标记模板。 297e41f4b71Sopenharmony_ci 298e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 299e41f4b71Sopenharmony_ci 300e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 301e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 302e41f4b71Sopenharmony_ci| subscriberId | string | 是 | 指定处理回调的订阅者的id,与[addTemplate](#addtemplate10)中的subscriberId相同,每个订阅者的ID是唯一的。 | 303e41f4b71Sopenharmony_ci| bundleNameOfOwner | string | 是 | 指定创建模板的模板所有者的bundleName,与[addTemplate](#addtemplate10)中的bundleName相同。 | 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci## PublishedItem<sup>10+</sup> 306e41f4b71Sopenharmony_ci 307e41f4b71Sopenharmony_ci指定发布的数据类型。 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 310e41f4b71Sopenharmony_ci 311e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 312e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 313e41f4b71Sopenharmony_ci| key | string | 是 | 指定发布数据的键。 | 314e41f4b71Sopenharmony_ci| data | string \| ArrayBuffer | 是 | 指定发布的数据。如果发布数据大小超过20KB,建议使用ArrayBuffer。 | 315e41f4b71Sopenharmony_ci| subscriberId | string | 是 | 指定订阅者id。 | 316e41f4b71Sopenharmony_ci 317e41f4b71Sopenharmony_ci## RdbDataChangeNode<sup>10+</sup> 318e41f4b71Sopenharmony_ci 319e41f4b71Sopenharmony_ci订阅/取消订阅RDB数据变更的结果。 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 324e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 325e41f4b71Sopenharmony_ci| uri | string | 是 | 指定回调的uri。 | 326e41f4b71Sopenharmony_ci| templateId | [TemplateId](#templateid10) | 是 | 处理回调的templateId。 | 327e41f4b71Sopenharmony_ci| data | Array<string> | 是 | 指定回调的数据。 | 328e41f4b71Sopenharmony_ci 329e41f4b71Sopenharmony_ci## PublishedDataChangeNode<sup>10+</sup> 330e41f4b71Sopenharmony_ci 331e41f4b71Sopenharmony_ci订阅/取消订阅已发布数据变更的结果。 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 336e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 337e41f4b71Sopenharmony_ci| bundleName | string | 是 | 指定回调的bundleName。 | 338e41f4b71Sopenharmony_ci| data | Array<[PublishedItem](#publisheditem10)> | 是 | 指定回调的数据。 | 339e41f4b71Sopenharmony_ci 340e41f4b71Sopenharmony_ci## Template<sup>10+</sup> 341e41f4b71Sopenharmony_ci 342e41f4b71Sopenharmony_ci指定订阅中的模板结构。 343e41f4b71Sopenharmony_ci 344e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 345e41f4b71Sopenharmony_ci 346e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 347e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 348e41f4b71Sopenharmony_ci| predicates | Record<string, string> | 是 | 指定模板的谓词。当调用[on](#onrdbdatachange10)的回调时,谓词用于生成数据。仅适用于rdb存储数据。 | 349e41f4b71Sopenharmony_ci| scheduler | string | 是 | 指定模板的调度程序sql。其中嵌入自定义函数处理,目前预置自定义函数remindTimer处理。remindTimer在指定场景触发一次订阅刷新。<br/>触发场景:<br/>1. 修改数据时且有订阅的情况下触发对应的调度程序sql语句。<br/>2. 添加对应库第一个订阅的情况下触发对应的调度程序sql语句。 | 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci## OperationResult<sup>10+</sup> 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci订阅/取消订阅数据变更和发布数据的操作结果。 354e41f4b71Sopenharmony_ci 355e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 356e41f4b71Sopenharmony_ci 357e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 358e41f4b71Sopenharmony_ci| -------- | -------- | ----- | -------- | 359e41f4b71Sopenharmony_ci| key | string | 是 | 指定运算结果的键。 | 360e41f4b71Sopenharmony_ci| result | number | 是 | 指定运算结果。正常情况下返回0,异常情况下返回错误码。 | 361e41f4b71Sopenharmony_ci## UpdateOperation<sup>12+</sup> 362e41f4b71Sopenharmony_ci 363e41f4b71Sopenharmony_ci批量更新操作的参数结构。 364e41f4b71Sopenharmony_ci 365e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 366e41f4b71Sopenharmony_ci 367e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 368e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | -------------- | 369e41f4b71Sopenharmony_ci| values | [ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket) | 是 | 要更新的数据。 | 370e41f4b71Sopenharmony_ci| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | 筛选条件。 | 371e41f4b71Sopenharmony_ci 372e41f4b71Sopenharmony_ci## ChangeType<sup>12+</sup> 373e41f4b71Sopenharmony_ci 374e41f4b71Sopenharmony_ci数据变更类型枚举。 375e41f4b71Sopenharmony_ci 376e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 377e41f4b71Sopenharmony_ci 378e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 379e41f4b71Sopenharmony_ci| ---------| ------------| --------------| 380e41f4b71Sopenharmony_ci| INSERT | 0 | 表示数据添加。| 381e41f4b71Sopenharmony_ci| DELETE | 1 | 表示数据删除。| 382e41f4b71Sopenharmony_ci| UPDATE | 2 | 表示数据更新。| 383e41f4b71Sopenharmony_ci 384e41f4b71Sopenharmony_ci## SubscriptionType<sup>12+</sup> 385e41f4b71Sopenharmony_ci 386e41f4b71Sopenharmony_ci数据订阅类型枚举。 387e41f4b71Sopenharmony_ci 388e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 389e41f4b71Sopenharmony_ci 390e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 391e41f4b71Sopenharmony_ci| ----------------------------|------| ---------------------------- | 392e41f4b71Sopenharmony_ci| SUBSCRIPTION_TYPE_EXACT_URI | 0 | 表示订阅指定uri路径的数据变更。| 393e41f4b71Sopenharmony_ci 394e41f4b71Sopenharmony_ci## ChangeInfo<sup>12+</sup> 395e41f4b71Sopenharmony_ci 396e41f4b71Sopenharmony_ci数据变更时通知用户具体变更的内容,包括数据变更类型、变化的uri、变更的数据内容。 397e41f4b71Sopenharmony_ci 398e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 399e41f4b71Sopenharmony_ci 400e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 401e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | -------------- | 402e41f4b71Sopenharmony_ci| type | [ChangeType](#changetype12) | 是 | 通知变更的类型 | 403e41f4b71Sopenharmony_ci| uri | string | 是 | 指定uri。 | 404e41f4b71Sopenharmony_ci| values | Array<[ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket)>| 是 | 更新的数据。 | 405e41f4b71Sopenharmony_ci 406e41f4b71Sopenharmony_ci## DataShareHelper 407e41f4b71Sopenharmony_ci 408e41f4b71Sopenharmony_ciDataShare管理工具实例,可使用此实例访问或管理服务端的数据。在调用DataShareHelper提供的方法前,需要先通过[createDataShareHelper](#datasharecreatedatasharehelper)构建一个实例。 409e41f4b71Sopenharmony_ci 410e41f4b71Sopenharmony_ci### on('dataChange') 411e41f4b71Sopenharmony_ci 412e41f4b71Sopenharmony_cion(type: 'dataChange', uri: string, callback: AsyncCallback<void>): void 413e41f4b71Sopenharmony_ci 414e41f4b71Sopenharmony_ci订阅指定URI对应数据的数据变更事件。若用户(订阅者)已注册了观察者,当有其他用户触发了变更通知时(调用了下文中的notifyChange方法),订阅者将会接收到callback通知。使用callback异步回调。 415e41f4b71Sopenharmony_ci 416e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 417e41f4b71Sopenharmony_ci 418e41f4b71Sopenharmony_ci**参数:** 419e41f4b71Sopenharmony_ci 420e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 421e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------ | 422e41f4b71Sopenharmony_ci| type | string | 是 | 订阅的事件/回调类型,支持的事件为'dataChange',当数据更改时,触发该事件。 | 423e41f4b71Sopenharmony_ci| uri | string | 是 | 表示指定的数据路径。 | 424e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当有其他用户触发了变更通知时调用,err为undefined;否则不被触发或为错误对象。 | 425e41f4b71Sopenharmony_ci 426e41f4b71Sopenharmony_ci**错误码:** 427e41f4b71Sopenharmony_ci 428e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 429e41f4b71Sopenharmony_ci 430e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 431e41f4b71Sopenharmony_ci| -------- | -------------------- | 432e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 433e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 434e41f4b71Sopenharmony_ci 435e41f4b71Sopenharmony_ci**示例:** 436e41f4b71Sopenharmony_ci 437e41f4b71Sopenharmony_ci```ts 438e41f4b71Sopenharmony_cilet onCallback: () => void = (): void => { 439e41f4b71Sopenharmony_ci console.info("**** Observer on callback ****"); 440e41f4b71Sopenharmony_ci} 441e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 442e41f4b71Sopenharmony_ciif (dataShareHelper !== undefined) { 443e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).on("dataChange", uri, onCallback); 444e41f4b71Sopenharmony_ci} 445e41f4b71Sopenharmony_ci``` 446e41f4b71Sopenharmony_ci 447e41f4b71Sopenharmony_ci### on('dataChange')<sup>12+</sup> 448e41f4b71Sopenharmony_ci 449e41f4b71Sopenharmony_cion(event: 'dataChange', type:SubscriptionType, uri: string, callback: AsyncCallback<ChangeInfo>): void 450e41f4b71Sopenharmony_ci 451e41f4b71Sopenharmony_ci订阅指定URI对应数据的数据变更事件。若用户(订阅者)已注册变更通知,当有其他用户触发了变更通知时(调用了下文中的notifyChange方法),订阅者将会接收到callback通知,通知携带数据变更类型、变化的uri、变更的数据内容。使用callback回调。仅支持非静默访问。 452e41f4b71Sopenharmony_ci 453e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 454e41f4b71Sopenharmony_ci 455e41f4b71Sopenharmony_ci**参数:** 456e41f4b71Sopenharmony_ci 457e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 458e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------ | 459e41f4b71Sopenharmony_ci| event | string | 是 | 订阅的事件/回调类型,支持的事件为'dataChange',当有其他用户触发了变更通知时,触发该事件。 | 460e41f4b71Sopenharmony_ci| type | [SubscriptionType](#subscriptiontype12)| 是 | 表示数据更改时按指定数据路径通知变更。 | 461e41f4b71Sopenharmony_ci| uri | string | 是 | 表示指定的数据路径。 | 462e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ChangeInfo](#changeinfo12)> | 是 | 回调函数。当有其他用户触发了变更通知时会回调该函数。| 463e41f4b71Sopenharmony_ci 464e41f4b71Sopenharmony_ci**错误码:** 465e41f4b71Sopenharmony_ci 466e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 467e41f4b71Sopenharmony_ci 468e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 469e41f4b71Sopenharmony_ci| -------- | -------------------- | 470e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 471e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 472e41f4b71Sopenharmony_ci 473e41f4b71Sopenharmony_ci**示例:** 474e41f4b71Sopenharmony_ci 475e41f4b71Sopenharmony_ci<!--code_no_check--> 476e41f4b71Sopenharmony_ci```ts 477e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 478e41f4b71Sopenharmony_ci 479e41f4b71Sopenharmony_cilet uri = ("datashare:///com.acts.datasharetest"); 480e41f4b71Sopenharmony_ciexport function callback(error:BusinessError, ChangeInfo:dataShare.ChangeInfo) { 481e41f4b71Sopenharmony_ci console.info(' **** Observer callback **** ChangeInfo:' + JSON.stringify(ChangeInfo)); 482e41f4b71Sopenharmony_ci} 483e41f4b71Sopenharmony_ciif (dataShareHelper !== undefined) { 484e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).on('dataChange', dataShare.SubscriptionType.SUBSCRIPTION_TYPE_EXACT_URI, uri, callback); 485e41f4b71Sopenharmony_ci} 486e41f4b71Sopenharmony_ci``` 487e41f4b71Sopenharmony_ci 488e41f4b71Sopenharmony_ci### off('dataChange') 489e41f4b71Sopenharmony_ci 490e41f4b71Sopenharmony_cioff(type: 'dataChange', uri: string, callback?: AsyncCallback<void>): void 491e41f4b71Sopenharmony_ci 492e41f4b71Sopenharmony_ci取消订阅指定URI下指定callback对应的数据资源的变更通知。 493e41f4b71Sopenharmony_ci 494e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 495e41f4b71Sopenharmony_ci 496e41f4b71Sopenharmony_ci**参数:** 497e41f4b71Sopenharmony_ci 498e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 499e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------ | 500e41f4b71Sopenharmony_ci| type | string | 是 | 取消订阅的事件/回调类型,支持的事件为'dataChange'。 | 501e41f4b71Sopenharmony_ci| uri | string | 是 | 表示指定的数据路径。 | 502e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 否 | 表示指定取消订阅的callback通知,如果为空、为undefined、null,则取消订阅该uri下所有的通知事件。 | 503e41f4b71Sopenharmony_ci 504e41f4b71Sopenharmony_ci**错误码:** 505e41f4b71Sopenharmony_ci 506e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 507e41f4b71Sopenharmony_ci 508e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 509e41f4b71Sopenharmony_ci| -------- | -------------------- | 510e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 511e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 512e41f4b71Sopenharmony_ci 513e41f4b71Sopenharmony_ci**示例:** 514e41f4b71Sopenharmony_ci 515e41f4b71Sopenharmony_ci```ts 516e41f4b71Sopenharmony_cilet callback: () => void = (): void => { 517e41f4b71Sopenharmony_ci console.info("**** Observer on callback ****"); 518e41f4b71Sopenharmony_ci} 519e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 520e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 521e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).on("dataChange", uri, callback); 522e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).off("dataChange", uri, callback); 523e41f4b71Sopenharmony_ci} 524e41f4b71Sopenharmony_ci``` 525e41f4b71Sopenharmony_ci 526e41f4b71Sopenharmony_ci 527e41f4b71Sopenharmony_ci### off('dataChange')<sup>12+</sup> 528e41f4b71Sopenharmony_ci 529e41f4b71Sopenharmony_cioff(event: 'dataChange', type:SubscriptionType, uri: string, callback?: AsyncCallback<ChangeInfo>): void 530e41f4b71Sopenharmony_ci 531e41f4b71Sopenharmony_ci取消订阅指定URI下指定callback对应的数据资源的变更通知。仅支持非静默访问。 532e41f4b71Sopenharmony_ci 533e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 534e41f4b71Sopenharmony_ci 535e41f4b71Sopenharmony_ci**参数:** 536e41f4b71Sopenharmony_ci 537e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 538e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------ | 539e41f4b71Sopenharmony_ci| event | string | 是 | 取消订阅的事件/回调类型,支持的事件为'dataChange'。 | 540e41f4b71Sopenharmony_ci| type | [SubscriptionType](#subscriptiontype12)| 是 | 表示数据更改时按指定数据路径通知变更。 | 541e41f4b71Sopenharmony_ci| uri | string | 是 | 表示指定的数据路径。 | 542e41f4b71Sopenharmony_ci| callback | AsyncCallback<[ChangeInfo](#changeinfo12)>| 否 | 表示指定取消订阅的callback通知,如果为空、为undefined、null,则取消订阅该uri下所有的通知事件。如果不为空,传入的callback必须和注册为同一个。| 543e41f4b71Sopenharmony_ci 544e41f4b71Sopenharmony_ci**错误码:** 545e41f4b71Sopenharmony_ci 546e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 547e41f4b71Sopenharmony_ci 548e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 549e41f4b71Sopenharmony_ci| -------- | -------------------- | 550e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 551e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 552e41f4b71Sopenharmony_ci 553e41f4b71Sopenharmony_ci**示例:** 554e41f4b71Sopenharmony_ci 555e41f4b71Sopenharmony_ci<!--code_no_check--> 556e41f4b71Sopenharmony_ci```ts 557e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 558e41f4b71Sopenharmony_ci 559e41f4b71Sopenharmony_cilet uri = ("datashare:///com.acts.datasharetest"); 560e41f4b71Sopenharmony_ciexport function callback(error:BusinessError, ChangeInfo:dataShare.ChangeInfo) { 561e41f4b71Sopenharmony_ci console.info(' **** Observer callback **** ChangeInfo:' + JSON.stringify(ChangeInfo)); 562e41f4b71Sopenharmony_ci} 563e41f4b71Sopenharmony_ciif (dataShareHelper !== undefined) { 564e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).on("dataChange", dataShare.SubscriptionType.SUBSCRIPTION_TYPE_EXACT_URI, uri, callback); 565e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).off("dataChange", dataShare.SubscriptionType.SUBSCRIPTION_TYPE_EXACT_URI, uri, callback); 566e41f4b71Sopenharmony_ci} 567e41f4b71Sopenharmony_ci``` 568e41f4b71Sopenharmony_ci 569e41f4b71Sopenharmony_ci### addTemplate<sup>10+</sup> 570e41f4b71Sopenharmony_ci 571e41f4b71Sopenharmony_ciaddTemplate(uri: string, subscriberId: string, template: Template): void 572e41f4b71Sopenharmony_ci 573e41f4b71Sopenharmony_ci添加一个指定订阅者的数据模板。 574e41f4b71Sopenharmony_ci 575e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 576e41f4b71Sopenharmony_ci 577e41f4b71Sopenharmony_ci**参数:** 578e41f4b71Sopenharmony_ci 579e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 580e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | -------------------------| 581e41f4b71Sopenharmony_ci| uri | string | 是 | 要插入的数据的路径。 | 582e41f4b71Sopenharmony_ci| subscriberId | string | 是 | 要添加模板的订阅者ID,每个订阅者的ID是唯一的。 | 583e41f4b71Sopenharmony_ci| template | [Template](#template10) | 是 | 要添加的数据模板。 | 584e41f4b71Sopenharmony_ci 585e41f4b71Sopenharmony_ci**错误码:** 586e41f4b71Sopenharmony_ci 587e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 588e41f4b71Sopenharmony_ci 589e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 590e41f4b71Sopenharmony_ci| -------- | -------------------- | 591e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 592e41f4b71Sopenharmony_ci| 15700011 | The URI is not exist.| 593e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 594e41f4b71Sopenharmony_ci 595e41f4b71Sopenharmony_ci**示例:** 596e41f4b71Sopenharmony_ci 597e41f4b71Sopenharmony_ci```ts 598e41f4b71Sopenharmony_cilet uri = ("datashareproxy://com.samples.datasharetest.DataShare"); 599e41f4b71Sopenharmony_cilet subscriberId = '11'; 600e41f4b71Sopenharmony_cilet key1: string = "p1"; 601e41f4b71Sopenharmony_cilet value1: string = "select cityColumn as city_1, visitedCilumn as visited_1 from citys where like = true"; 602e41f4b71Sopenharmony_cilet key2: string = "p2"; 603e41f4b71Sopenharmony_cilet value2: string = "select cityColumn as city_2, visitedCilumn as visited_2 from citys where like = false"; 604e41f4b71Sopenharmony_cilet template: dataShare.Template = { 605e41f4b71Sopenharmony_ci predicates : { 606e41f4b71Sopenharmony_ci key1 : value1, 607e41f4b71Sopenharmony_ci key2 : value2, 608e41f4b71Sopenharmony_ci }, 609e41f4b71Sopenharmony_ci scheduler : "select remindTimer(time) from TBL00" 610e41f4b71Sopenharmony_ci} 611e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 612e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).addTemplate(uri, subscriberId, template); 613e41f4b71Sopenharmony_ci} 614e41f4b71Sopenharmony_ci``` 615e41f4b71Sopenharmony_ci 616e41f4b71Sopenharmony_ci### delTemplate<sup>10+</sup> 617e41f4b71Sopenharmony_ci 618e41f4b71Sopenharmony_cidelTemplate(uri: string, subscriberId: string): void 619e41f4b71Sopenharmony_ci 620e41f4b71Sopenharmony_ci删除一个指定订阅者的数据模板。 621e41f4b71Sopenharmony_ci 622e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 623e41f4b71Sopenharmony_ci 624e41f4b71Sopenharmony_ci**参数:** 625e41f4b71Sopenharmony_ci 626e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 627e41f4b71Sopenharmony_ci| -------- | -------------| ---- | ------------------------- | 628e41f4b71Sopenharmony_ci| uri | string | 是 | 要删除的数据的路径。 | 629e41f4b71Sopenharmony_ci| subscriberId | string | 是 | 订阅者ID,每个订阅者的ID是唯一的。 | 630e41f4b71Sopenharmony_ci 631e41f4b71Sopenharmony_ci**错误码:** 632e41f4b71Sopenharmony_ci 633e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 634e41f4b71Sopenharmony_ci 635e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 636e41f4b71Sopenharmony_ci| -------- | -------------------- | 637e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 638e41f4b71Sopenharmony_ci| 15700011 | The URI is not exist.| 639e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 640e41f4b71Sopenharmony_ci 641e41f4b71Sopenharmony_ci**示例:** 642e41f4b71Sopenharmony_ci 643e41f4b71Sopenharmony_ci```ts 644e41f4b71Sopenharmony_cilet uri = ("datashareproxy://com.samples.datasharetest.DataShare"); 645e41f4b71Sopenharmony_cilet subscriberId = '11'; 646e41f4b71Sopenharmony_cilet key1: string = "p1"; 647e41f4b71Sopenharmony_cilet value1: string = "select cityColumn as city_1, visitedCilumn as visited_1 from citys where like = true"; 648e41f4b71Sopenharmony_cilet key2: string = "p2"; 649e41f4b71Sopenharmony_cilet value2: string = "select cityColumn as city_2, visitedCilumn as visited_2 from citys where like = false"; 650e41f4b71Sopenharmony_cilet template: dataShare.Template = { 651e41f4b71Sopenharmony_ci predicates : { 652e41f4b71Sopenharmony_ci key1 : value1, 653e41f4b71Sopenharmony_ci key2 : value2, 654e41f4b71Sopenharmony_ci }, 655e41f4b71Sopenharmony_ci scheduler : "select remindTimer(time) from TBL00" 656e41f4b71Sopenharmony_ci} 657e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 658e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).addTemplate(uri, subscriberId, template); 659e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).delTemplate(uri, subscriberId); 660e41f4b71Sopenharmony_ci} 661e41f4b71Sopenharmony_ci``` 662e41f4b71Sopenharmony_ci 663e41f4b71Sopenharmony_ci### on('rdbDataChange')<sup>10+</sup> 664e41f4b71Sopenharmony_ci 665e41f4b71Sopenharmony_cion(type: 'rdbDataChange', uris: Array<string>, templateId: TemplateId, callback: AsyncCallback<RdbDataChangeNode>): Array<OperationResult> 666e41f4b71Sopenharmony_ci 667e41f4b71Sopenharmony_ci订阅指定URI和模板对应的数据变更事件。 668e41f4b71Sopenharmony_ci 669e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 670e41f4b71Sopenharmony_ci 671e41f4b71Sopenharmony_ci**参数:** 672e41f4b71Sopenharmony_ci 673e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 674e41f4b71Sopenharmony_ci| -------- | ----------------------------------| ---- | ------------------------------------------------------------ | 675e41f4b71Sopenharmony_ci| type | string | 是 | 订阅的事件类型,支持的事件为'rdbDataChange',表示rdb数据的变更事件。type是固定值以外时,接口无响应。 | 676e41f4b71Sopenharmony_ci| uris | Array<string> | 是 | 要操作的数据的路径。 | 677e41f4b71Sopenharmony_ci| templateId | [TemplateId](#templateid10) | 是 | 处理回调的templateId。 | 678e41f4b71Sopenharmony_ci| callback | AsyncCallback<[RdbDataChangeNode](#rdbdatachangenode10)> | 是 | 回调函数。当触发变更通知时调用,err为undefined,node为订阅数据变更结果;否则不被触发或为错误对象。 | 679e41f4b71Sopenharmony_ci 680e41f4b71Sopenharmony_ci**返回值:** 681e41f4b71Sopenharmony_ci 682e41f4b71Sopenharmony_ci| 类型 | 说明 | 683e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 684e41f4b71Sopenharmony_ci| Array<[OperationResult](#operationresult10)> | 返回操作结果。| 685e41f4b71Sopenharmony_ci 686e41f4b71Sopenharmony_ci**错误码:** 687e41f4b71Sopenharmony_ci 688e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 689e41f4b71Sopenharmony_ci 690e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 691e41f4b71Sopenharmony_ci| -------- | -------------------- | 692e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 693e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 694e41f4b71Sopenharmony_ci 695e41f4b71Sopenharmony_ci**示例:** 696e41f4b71Sopenharmony_ci 697e41f4b71Sopenharmony_ci```ts 698e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 699e41f4b71Sopenharmony_ci 700e41f4b71Sopenharmony_cilet onCallback: (err: BusinessError, node: dataShare.RdbDataChangeNode) => void = (err: BusinessError, node:dataShare.RdbDataChangeNode): void => { 701e41f4b71Sopenharmony_ci console.info("onCallback " + JSON.stringify(node.uri)); 702e41f4b71Sopenharmony_ci console.info("onCallback " + JSON.stringify(node.templateId)); 703e41f4b71Sopenharmony_ci console.info("onCallback " + node.data.length); 704e41f4b71Sopenharmony_ci for (let i = 0; i < node.data.length; i++) { 705e41f4b71Sopenharmony_ci console.info("onCallback " + typeof node.data[i] + " " + node.data[i]); 706e41f4b71Sopenharmony_ci } 707e41f4b71Sopenharmony_ci} 708e41f4b71Sopenharmony_ci 709e41f4b71Sopenharmony_cilet uri = ("datashareproxy://com.samples.datasharetest.DataShare"); 710e41f4b71Sopenharmony_cilet templateId:dataShare.TemplateId = {subscriberId:"11", bundleNameOfOwner:"com.acts.ohos.data.datasharetest"}; 711e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 712e41f4b71Sopenharmony_ci let result: Array<dataShare.OperationResult> = (dataShareHelper as dataShare.DataShareHelper).on("rdbDataChange", [uri], templateId, onCallback); 713e41f4b71Sopenharmony_ci} 714e41f4b71Sopenharmony_ci``` 715e41f4b71Sopenharmony_ci 716e41f4b71Sopenharmony_ci### off('rdbDataChange')<sup>10+</sup> 717e41f4b71Sopenharmony_ci 718e41f4b71Sopenharmony_cioff(type: 'rdbDataChange', uris: Array<string>, templateId: TemplateId, callback?: AsyncCallback<RdbDataChangeNode>): Array<OperationResult> 719e41f4b71Sopenharmony_ci 720e41f4b71Sopenharmony_ci取消订阅指定URI和模板对应的数据变更事件。 721e41f4b71Sopenharmony_ci 722e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 723e41f4b71Sopenharmony_ci 724e41f4b71Sopenharmony_ci**参数:** 725e41f4b71Sopenharmony_ci 726e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 727e41f4b71Sopenharmony_ci| -------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | 728e41f4b71Sopenharmony_ci| type | string | 是 | 取消订阅的事件类型,支持的事件为'rdbDataChange',表示rdb数据的变更事件。 | 729e41f4b71Sopenharmony_ci| uris | Array<string> | 是 | 要操作的数据的路径。 | 730e41f4b71Sopenharmony_ci| templateId | [TemplateId](#templateid10) | 是 | 处理回调的templateId。 | 731e41f4b71Sopenharmony_ci| callback | AsyncCallback<[RdbDataChangeNode](#rdbdatachangenode10)> | 否 | 回调函数。表示指定取消订阅的callback通知,如果为空、为undefined、null,则取消订阅该uri下所有的通知事件。 | 732e41f4b71Sopenharmony_ci 733e41f4b71Sopenharmony_ci**返回值:** 734e41f4b71Sopenharmony_ci 735e41f4b71Sopenharmony_ci| 类型 | 说明 | 736e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 737e41f4b71Sopenharmony_ci| Array<[OperationResult](#operationresult10)> | 返回操作结果。| 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_ci**错误码:** 740e41f4b71Sopenharmony_ci 741e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 742e41f4b71Sopenharmony_ci 743e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 744e41f4b71Sopenharmony_ci| -------- | -------------------- | 745e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 746e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 747e41f4b71Sopenharmony_ci 748e41f4b71Sopenharmony_ci**示例:** 749e41f4b71Sopenharmony_ci 750e41f4b71Sopenharmony_ci```ts 751e41f4b71Sopenharmony_cilet uri = ("datashareproxy://com.samples.datasharetest.DataShare"); 752e41f4b71Sopenharmony_cilet templateId:dataShare.TemplateId = {subscriberId:"11", bundleNameOfOwner:"com.acts.ohos.data.datasharetest"}; 753e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 754e41f4b71Sopenharmony_ci let result: Array<dataShare.OperationResult> = (dataShareHelper as dataShare.DataShareHelper).off("rdbDataChange", [uri], templateId); 755e41f4b71Sopenharmony_ci} 756e41f4b71Sopenharmony_ci``` 757e41f4b71Sopenharmony_ci 758e41f4b71Sopenharmony_ci### on('publishedDataChange')<sup>10+</sup> 759e41f4b71Sopenharmony_ci 760e41f4b71Sopenharmony_cion(type: 'publishedDataChange', uris: Array<string>, subscriberId: string, callback: AsyncCallback<PublishedDataChangeNode>): Array<OperationResult> 761e41f4b71Sopenharmony_ci 762e41f4b71Sopenharmony_ci订阅已发布数据的数据变更通知。 763e41f4b71Sopenharmony_ci 764e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 765e41f4b71Sopenharmony_ci 766e41f4b71Sopenharmony_ci**参数:** 767e41f4b71Sopenharmony_ci 768e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 769e41f4b71Sopenharmony_ci| -------- | ----------------------------------| ---- | ------------------------------------------------------------ | 770e41f4b71Sopenharmony_ci| type | string | 是 | 订阅的事件类型,支持的事件为'publishedDataChange',表示已发布数据的变更事件。 | 771e41f4b71Sopenharmony_ci| uris | Array<string> | 是 | 要操作的数据的路径。 | 772e41f4b71Sopenharmony_ci| subscriberId | string | 是 | 指定处理回调的用户ID。 | 773e41f4b71Sopenharmony_ci| callback | AsyncCallback<[PublishedDataChangeNode](#publisheddatachangenode10)> | 是 | 回调函数。当触发变更通知时调用,err为undefined,node为订阅数据变更结果;否则不被触发或为错误对象。 | 774e41f4b71Sopenharmony_ci 775e41f4b71Sopenharmony_ci**返回值:** 776e41f4b71Sopenharmony_ci 777e41f4b71Sopenharmony_ci| 类型 | 说明 | 778e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 779e41f4b71Sopenharmony_ci| Array<[OperationResult](#operationresult10)> | 返回操作结果。| 780e41f4b71Sopenharmony_ci 781e41f4b71Sopenharmony_ci**错误码:** 782e41f4b71Sopenharmony_ci 783e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 784e41f4b71Sopenharmony_ci 785e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 786e41f4b71Sopenharmony_ci| -------- | -------------------- | 787e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 788e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 789e41f4b71Sopenharmony_ci 790e41f4b71Sopenharmony_ci**示例:** 791e41f4b71Sopenharmony_ci 792e41f4b71Sopenharmony_ci```ts 793e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 794e41f4b71Sopenharmony_ci 795e41f4b71Sopenharmony_cilet onPublishCallback: (err: BusinessError, node: dataShare.PublishedDataChangeNode) => void = (err: BusinessError, node:dataShare.PublishedDataChangeNode): void => { 796e41f4b71Sopenharmony_ci console.info("onPublishCallback node bundleName " + JSON.stringify(node.bundleName)); 797e41f4b71Sopenharmony_ci console.info("onPublishCallback node data size" + node.data.length); 798e41f4b71Sopenharmony_ci for (let i = 0; i < node.data.length; i++) { 799e41f4b71Sopenharmony_ci console.info("onPublishCallback node " + typeof node.data[i].data); 800e41f4b71Sopenharmony_ci if (typeof node.data[i].data != 'string') { 801e41f4b71Sopenharmony_ci let array: ArrayBuffer = node.data[i].data as ArrayBuffer; 802e41f4b71Sopenharmony_ci let data: Uint8Array = new Uint8Array(array); 803e41f4b71Sopenharmony_ci console.info("onPublishCallback " + i + " " + JSON.stringify(data)); 804e41f4b71Sopenharmony_ci } 805e41f4b71Sopenharmony_ci console.info("onPublishCallback data " + i + " " + JSON.stringify(node.data[i])); 806e41f4b71Sopenharmony_ci } 807e41f4b71Sopenharmony_ci} 808e41f4b71Sopenharmony_cilet uris:Array<string> = ['city', 'datashareproxy://com.acts.ohos.data.datasharetest/appInfo', 'key2']; 809e41f4b71Sopenharmony_cilet subscriberId = '11'; 810e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 811e41f4b71Sopenharmony_ci let result: Array<dataShare.OperationResult> = (dataShareHelper as dataShare.DataShareHelper).on('publishedDataChange', uris, subscriberId, onPublishCallback); 812e41f4b71Sopenharmony_ci} 813e41f4b71Sopenharmony_ci``` 814e41f4b71Sopenharmony_ci 815e41f4b71Sopenharmony_ci### off('publishedDataChange')<sup>10+</sup> 816e41f4b71Sopenharmony_ci 817e41f4b71Sopenharmony_cioff(type: 'publishedDataChange', uris: Array<string>, subscriberId: string, callback?: AsyncCallback<PublishedDataChangeNode>): Array<OperationResult> 818e41f4b71Sopenharmony_ci 819e41f4b71Sopenharmony_ci取消订阅已发布数据的数据变更通知。 820e41f4b71Sopenharmony_ci 821e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 822e41f4b71Sopenharmony_ci 823e41f4b71Sopenharmony_ci**参数:** 824e41f4b71Sopenharmony_ci 825e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 826e41f4b71Sopenharmony_ci| -------- | -------------------------------------------- | ---- | ---------------------------------------------------------- | 827e41f4b71Sopenharmony_ci| type | string | 是 | 取消订阅的事件类型,支持的事件为'publishedDataChange',表示已发布数据的变更事件。| 828e41f4b71Sopenharmony_ci| uris | Array<string> | 是 | 要操作的数据的路径。 | 829e41f4b71Sopenharmony_ci| subscriberId | string | 是 | 指定处理回调的用户ID。 | 830e41f4b71Sopenharmony_ci| callback | AsyncCallback<[PublishedDataChangeNode](#publisheddatachangenode10)> | 否 | 回调函数。表示指定取消订阅的callback通知,如果为空、为undefined、null,则取消订阅该uri下所有的通知事件。 | 831e41f4b71Sopenharmony_ci 832e41f4b71Sopenharmony_ci**返回值:** 833e41f4b71Sopenharmony_ci 834e41f4b71Sopenharmony_ci| 类型 | 说明 | 835e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 836e41f4b71Sopenharmony_ci| Array<[OperationResult](#operationresult10)> | 返回操作结果。| 837e41f4b71Sopenharmony_ci 838e41f4b71Sopenharmony_ci**错误码:** 839e41f4b71Sopenharmony_ci 840e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 841e41f4b71Sopenharmony_ci 842e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 843e41f4b71Sopenharmony_ci| -------- | -------------------- | 844e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 845e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 846e41f4b71Sopenharmony_ci 847e41f4b71Sopenharmony_ci**示例:** 848e41f4b71Sopenharmony_ci 849e41f4b71Sopenharmony_ci```ts 850e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 851e41f4b71Sopenharmony_ci 852e41f4b71Sopenharmony_cilet offCallback: (err: BusinessError, node: dataShare.PublishedDataChangeNode) => void = (err: BusinessError, node:dataShare.PublishedDataChangeNode): void => { 853e41f4b71Sopenharmony_ci console.info("**** Observer off callback ****"); 854e41f4b71Sopenharmony_ci} 855e41f4b71Sopenharmony_cilet uris:Array<string> = ["city", "datashareproxy://com.acts.ohos.data.datasharetest/appInfo", "key2"]; 856e41f4b71Sopenharmony_cilet subscriberId = '11'; 857e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 858e41f4b71Sopenharmony_ci let result: Array<dataShare.OperationResult> = (dataShareHelper as dataShare.DataShareHelper).off("publishedDataChange", uris, subscriberId, offCallback); 859e41f4b71Sopenharmony_ci} 860e41f4b71Sopenharmony_ci``` 861e41f4b71Sopenharmony_ci 862e41f4b71Sopenharmony_ci### publish<sup>10+</sup> 863e41f4b71Sopenharmony_ci 864e41f4b71Sopenharmony_cipublish(data: Array<PublishedItem>, bundleName: string, version: number, callback: AsyncCallback<Array<OperationResult>>): void 865e41f4b71Sopenharmony_ci 866e41f4b71Sopenharmony_ci发布数据,将数据更新至数据库。 867e41f4b71Sopenharmony_ci 868e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 869e41f4b71Sopenharmony_ci 870e41f4b71Sopenharmony_ci**参数:** 871e41f4b71Sopenharmony_ci 872e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 873e41f4b71Sopenharmony_ci| --------- | -------------------------------------------------| ---- | ------------------- | 874e41f4b71Sopenharmony_ci| data | Array<[PublishedItem](#publisheditem10)> | 是 | 要发布的数据。 | 875e41f4b71Sopenharmony_ci| bundleName | string | 是 | 表示要发布数据所属的APP,对发布的私有数据生效,仅该app可以读取数据。 | 876e41f4b71Sopenharmony_ci| version | number | 是 | 要发布的数据版本,越大表示数据版本越新。如果发布的版本号小于数据库中的记录,则更新失败。 | 877e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<[OperationResult](#operationresult10)>> | 是 | 回调函数。当发布数据时调用,err为undefined,result为发布数据结果;否则不被触发或为错误对象。 | 878e41f4b71Sopenharmony_ci 879e41f4b71Sopenharmony_ci**错误码:** 880e41f4b71Sopenharmony_ci 881e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 882e41f4b71Sopenharmony_ci 883e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 884e41f4b71Sopenharmony_ci| -------- | -------------------------- | 885e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 886e41f4b71Sopenharmony_ci| 15700012 | The data area is not exist.| 887e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 888e41f4b71Sopenharmony_ci 889e41f4b71Sopenharmony_ci**示例:** 890e41f4b71Sopenharmony_ci 891e41f4b71Sopenharmony_ci```ts 892e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 893e41f4b71Sopenharmony_ci 894e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(1); 895e41f4b71Sopenharmony_cilet version = 1; 896e41f4b71Sopenharmony_cilet dataArray : Array<dataShare.PublishedItem> = [{key:"key2", subscriberId:"11", data:arrayBuffer}]; 897e41f4b71Sopenharmony_cilet publishCallback: (err: BusinessError, result: Array<dataShare.OperationResult>) => void = (err: BusinessError, result: Array<dataShare.OperationResult>): void => { 898e41f4b71Sopenharmony_ci console.info("publishCallback " + JSON.stringify(result)); 899e41f4b71Sopenharmony_ci} 900e41f4b71Sopenharmony_citry { 901e41f4b71Sopenharmony_ci console.info("dataArray length is:", dataArray.length); 902e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 903e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).publish(dataArray, "com.acts.ohos.data.datasharetest", version, publishCallback); 904e41f4b71Sopenharmony_ci } 905e41f4b71Sopenharmony_ci} catch (e) { 906e41f4b71Sopenharmony_ci console.error("publish error " + JSON.stringify(e)); 907e41f4b71Sopenharmony_ci} 908e41f4b71Sopenharmony_ci``` 909e41f4b71Sopenharmony_ci 910e41f4b71Sopenharmony_ci### publish<sup>10+</sup> 911e41f4b71Sopenharmony_ci 912e41f4b71Sopenharmony_cipublish(data: Array<PublishedItem>, bundleName: string, callback: AsyncCallback<Array<OperationResult>>): void 913e41f4b71Sopenharmony_ci 914e41f4b71Sopenharmony_ci发布数据,将数据更新至数据库。 915e41f4b71Sopenharmony_ci 916e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 917e41f4b71Sopenharmony_ci 918e41f4b71Sopenharmony_ci**参数:** 919e41f4b71Sopenharmony_ci 920e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 921e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | ---------------------------------- | 922e41f4b71Sopenharmony_ci| data | Array<[PublishedItem](#publisheditem10)> | 是 | 要发布的数据。 | 923e41f4b71Sopenharmony_ci| bundleName | string | 是 | 表示要发布数据所属的APP,对发布的私有数据生效,仅该app可以读取数据。 | 924e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<[OperationResult](#operationresult10)>> | 是 | 回调函数。当发布数据时调用,err为undefined,result为发布数据结果;否则不被触发或为错误对象。 | 925e41f4b71Sopenharmony_ci 926e41f4b71Sopenharmony_ci**错误码:** 927e41f4b71Sopenharmony_ci 928e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 929e41f4b71Sopenharmony_ci 930e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 931e41f4b71Sopenharmony_ci| -------- | -------------------------- | 932e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 933e41f4b71Sopenharmony_ci| 15700012 | The data area is not exist.| 934e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 935e41f4b71Sopenharmony_ci 936e41f4b71Sopenharmony_ci**示例:** 937e41f4b71Sopenharmony_ci 938e41f4b71Sopenharmony_ci```ts 939e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 940e41f4b71Sopenharmony_ci 941e41f4b71Sopenharmony_cilet publishCallback: (err: BusinessError, result: Array<dataShare.OperationResult>) => void = (err: BusinessError, result: Array<dataShare.OperationResult>): void => { 942e41f4b71Sopenharmony_ci console.info("publishCallback " + JSON.stringify(result)); 943e41f4b71Sopenharmony_ci} 944e41f4b71Sopenharmony_cilet dataArray : Array<dataShare.PublishedItem> = [ 945e41f4b71Sopenharmony_ci {key:"city", subscriberId:"11", data:"xian"}, 946e41f4b71Sopenharmony_ci {key:"datashareproxy://com.acts.ohos.data.datasharetest/appInfo", subscriberId:"11", data:"appinfo is just a test app"}, 947e41f4b71Sopenharmony_ci {key:"empty", subscriberId:"11", data:"nobody sub"}]; 948e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 949e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).publish(dataArray, "com.acts.ohos.data.datasharetest", publishCallback); 950e41f4b71Sopenharmony_ci} 951e41f4b71Sopenharmony_ci``` 952e41f4b71Sopenharmony_ci 953e41f4b71Sopenharmony_ci### publish<sup>10+</sup> 954e41f4b71Sopenharmony_ci 955e41f4b71Sopenharmony_cipublish(data: Array<PublishedItem>, bundleName: string, version?: number): Promise<Array<OperationResult>> 956e41f4b71Sopenharmony_ci 957e41f4b71Sopenharmony_ci发布数据,将数据更新至数据库。 958e41f4b71Sopenharmony_ci 959e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 960e41f4b71Sopenharmony_ci 961e41f4b71Sopenharmony_ci**参数:** 962e41f4b71Sopenharmony_ci 963e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 964e41f4b71Sopenharmony_ci| -------- | ----------------------------- | ---- | ------------------------------ | 965e41f4b71Sopenharmony_ci| data | Array<[PublishedItem](#publisheditem10)> | 是 | 要发布的数据。| 966e41f4b71Sopenharmony_ci| bundleName | string | 是 | 表示要发布数据所属的APP,对发布的私有数据生效,仅该app可以读取数据。 | 967e41f4b71Sopenharmony_ci| version | number | 否 | 要发布的数据版本,越大表示数据版本越新。如果发布的版本号小于数据库中的记录,则更新失败。<br/> 如果不检查要发布的数据版本,则不填。 | 968e41f4b71Sopenharmony_ci 969e41f4b71Sopenharmony_ci**返回值:** 970e41f4b71Sopenharmony_ci 971e41f4b71Sopenharmony_ci| 类型 | 说明 | 972e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 973e41f4b71Sopenharmony_ci| Promise<Array<[OperationResult](#operationresult10)>> | 发布数据结果。| 974e41f4b71Sopenharmony_ci 975e41f4b71Sopenharmony_ci**错误码:** 976e41f4b71Sopenharmony_ci 977e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 978e41f4b71Sopenharmony_ci 979e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 980e41f4b71Sopenharmony_ci| -------- | -------------------------- | 981e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 982e41f4b71Sopenharmony_ci| 15700012 | The data area is not exist.| 983e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 984e41f4b71Sopenharmony_ci 985e41f4b71Sopenharmony_ci**示例:** 986e41f4b71Sopenharmony_ci 987e41f4b71Sopenharmony_ci```ts 988e41f4b71Sopenharmony_cilet dataArray: Array<dataShare.PublishedItem> = [ 989e41f4b71Sopenharmony_ci {key:"city", subscriberId:"11", data:"xian"}, 990e41f4b71Sopenharmony_ci {key:"datashareproxy://com.acts.ohos.data.datasharetest/appInfo", subscriberId:"11", data:"appinfo is just a test app"}, 991e41f4b71Sopenharmony_ci {key:"empty", subscriberId:"11", data:"nobody sub"}]; 992e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 993e41f4b71Sopenharmony_ci let result: Promise<Array<dataShare.OperationResult>> = (dataShareHelper as dataShare.DataShareHelper).publish(dataArray, "com.acts.ohos.data.datasharetest"); 994e41f4b71Sopenharmony_ci} 995e41f4b71Sopenharmony_ci``` 996e41f4b71Sopenharmony_ci 997e41f4b71Sopenharmony_ci### getPublishedData<sup>10+</sup> 998e41f4b71Sopenharmony_ci 999e41f4b71Sopenharmony_cigetPublishedData(bundleName: string, callback: AsyncCallback<Array<PublishedItem>>): void 1000e41f4b71Sopenharmony_ci 1001e41f4b71Sopenharmony_ci获取给定的APP和模板指定的数据。 1002e41f4b71Sopenharmony_ci 1003e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1004e41f4b71Sopenharmony_ci 1005e41f4b71Sopenharmony_ci**参数:** 1006e41f4b71Sopenharmony_ci 1007e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1008e41f4b71Sopenharmony_ci| -------- | -----------------| ---- | ----------------------------- | 1009e41f4b71Sopenharmony_ci| bundleName | string | 是 | 表示数据所属的APP。 | 1010e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<[PublishedItem](#publisheditem10)>> | 是 | 回调函数,返回给定的APP和模板发布的数据。 | 1011e41f4b71Sopenharmony_ci 1012e41f4b71Sopenharmony_ci**错误码:** 1013e41f4b71Sopenharmony_ci 1014e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1015e41f4b71Sopenharmony_ci 1016e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1017e41f4b71Sopenharmony_ci| -------- | -------------------------- | 1018e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1019e41f4b71Sopenharmony_ci| 15700012 | The data area is not exist.| 1020e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1021e41f4b71Sopenharmony_ci 1022e41f4b71Sopenharmony_ci**示例:** 1023e41f4b71Sopenharmony_ci 1024e41f4b71Sopenharmony_ci```ts 1025e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1026e41f4b71Sopenharmony_ci 1027e41f4b71Sopenharmony_cilet publishCallback: (err: BusinessError, data: Array<dataShare.PublishedItem>) => void = (err: BusinessError, result: Array<dataShare.PublishedItem>): void => { 1028e41f4b71Sopenharmony_ci console.info("**** Observer publish callback ****"); 1029e41f4b71Sopenharmony_ci} 1030e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 1031e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).getPublishedData("com.acts.ohos.data.datasharetest", publishCallback); 1032e41f4b71Sopenharmony_ci} 1033e41f4b71Sopenharmony_ci``` 1034e41f4b71Sopenharmony_ci 1035e41f4b71Sopenharmony_ci### getPublishedData<sup>10+</sup> 1036e41f4b71Sopenharmony_ci 1037e41f4b71Sopenharmony_cigetPublishedData(bundleName: string): Promise<Array<PublishedItem>> 1038e41f4b71Sopenharmony_ci 1039e41f4b71Sopenharmony_ci获取给定的APP和模板指定的数据。 1040e41f4b71Sopenharmony_ci 1041e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1042e41f4b71Sopenharmony_ci 1043e41f4b71Sopenharmony_ci**参数:** 1044e41f4b71Sopenharmony_ci 1045e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1046e41f4b71Sopenharmony_ci| -------- | --------------| ---- | -------------------------------------- | 1047e41f4b71Sopenharmony_ci| bundleName | string | 是 | 表示数据所属的APP。 | 1048e41f4b71Sopenharmony_ci 1049e41f4b71Sopenharmony_ci**返回值:** 1050e41f4b71Sopenharmony_ci 1051e41f4b71Sopenharmony_ci| 类型 | 说明 | 1052e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | ----------------------------------- | 1053e41f4b71Sopenharmony_ci| Promise<Array<[PublishedItem](#publisheditem10)>> | Promise对象,返回给定的APP和模板发布的数据。 | 1054e41f4b71Sopenharmony_ci 1055e41f4b71Sopenharmony_ci**错误码:** 1056e41f4b71Sopenharmony_ci 1057e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1058e41f4b71Sopenharmony_ci 1059e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1060e41f4b71Sopenharmony_ci| -------- | -------------------------- | 1061e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1062e41f4b71Sopenharmony_ci| 15700012 | The data area is not exist.| 1063e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1064e41f4b71Sopenharmony_ci 1065e41f4b71Sopenharmony_ci**示例:** 1066e41f4b71Sopenharmony_ci 1067e41f4b71Sopenharmony_ci```ts 1068e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 1069e41f4b71Sopenharmony_ci let publishedData: Promise<Array<dataShare.PublishedItem>> = (dataShareHelper as dataShare.DataShareHelper).getPublishedData("com.acts.ohos.data.datasharetest"); 1070e41f4b71Sopenharmony_ci} 1071e41f4b71Sopenharmony_ci``` 1072e41f4b71Sopenharmony_ci 1073e41f4b71Sopenharmony_ci### insert 1074e41f4b71Sopenharmony_ci 1075e41f4b71Sopenharmony_ciinsert(uri: string, value: ValuesBucket, callback: AsyncCallback<number>): void 1076e41f4b71Sopenharmony_ci 1077e41f4b71Sopenharmony_ci将单条数据插入数据库。使用callback异步回调。 1078e41f4b71Sopenharmony_ci 1079e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1080e41f4b71Sopenharmony_ci 1081e41f4b71Sopenharmony_ci**参数:** 1082e41f4b71Sopenharmony_ci 1083e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1084e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ | 1085e41f4b71Sopenharmony_ci| uri | string | 是 | 要插入的数据的路径。 | 1086e41f4b71Sopenharmony_ci| value | [ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket) | 是 | 要插入的数据。如果此参数为空,将插入一个空行。 | 1087e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当将单条数据插入数据库成功,err为undefined,data为获取到的插入数据记录的索引;否则为错误对象。<br />因部分数据库(如KVDB)的相应接口并不支持返回索引,故若服务端使用了不支持索引的数据库,则此callback也无法返回索引值。 | 1088e41f4b71Sopenharmony_ci 1089e41f4b71Sopenharmony_ci**错误码:** 1090e41f4b71Sopenharmony_ci 1091e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1092e41f4b71Sopenharmony_ci 1093e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1094e41f4b71Sopenharmony_ci| -------- | -------------------- | 1095e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1096e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1097e41f4b71Sopenharmony_ci 1098e41f4b71Sopenharmony_ci**示例:** 1099e41f4b71Sopenharmony_ci 1100e41f4b71Sopenharmony_ci```ts 1101e41f4b71Sopenharmony_ciimport { ValuesBucket } from '@kit.ArkData' 1102e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1103e41f4b71Sopenharmony_ci 1104e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1105e41f4b71Sopenharmony_cilet key1: string = "name"; 1106e41f4b71Sopenharmony_cilet value1: string = "rose"; 1107e41f4b71Sopenharmony_cilet key2: string = "age"; 1108e41f4b71Sopenharmony_cilet value2: number = 22; 1109e41f4b71Sopenharmony_cilet key3: string = "salary"; 1110e41f4b71Sopenharmony_cilet value3: number = 200.5; 1111e41f4b71Sopenharmony_ciconst valueBucket: ValuesBucket = { 1112e41f4b71Sopenharmony_ci key1: value1, 1113e41f4b71Sopenharmony_ci key2: value2, 1114e41f4b71Sopenharmony_ci key3: value3, 1115e41f4b71Sopenharmony_ci} 1116e41f4b71Sopenharmony_citry { 1117e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1118e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).insert(uri, valueBucket, (err: BusinessError, data: number) => { 1119e41f4b71Sopenharmony_ci if (err !== undefined) { 1120e41f4b71Sopenharmony_ci console.error(`insert error: code: ${err.code}, message: ${err.message} `); 1121e41f4b71Sopenharmony_ci return; 1122e41f4b71Sopenharmony_ci } 1123e41f4b71Sopenharmony_ci console.info("insert succeed, data : " + data); 1124e41f4b71Sopenharmony_ci }); 1125e41f4b71Sopenharmony_ci } 1126e41f4b71Sopenharmony_ci} catch (err) { 1127e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1128e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1129e41f4b71Sopenharmony_ci console.error(`insert error: code: ${code}, message: ${message} `); 1130e41f4b71Sopenharmony_ci}; 1131e41f4b71Sopenharmony_ci``` 1132e41f4b71Sopenharmony_ci 1133e41f4b71Sopenharmony_ci### insert 1134e41f4b71Sopenharmony_ci 1135e41f4b71Sopenharmony_ciinsert(uri: string, value: ValuesBucket): Promise<number> 1136e41f4b71Sopenharmony_ci 1137e41f4b71Sopenharmony_ci将单条数据插入数据库。使用Promise异步回调。 1138e41f4b71Sopenharmony_ci 1139e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1140e41f4b71Sopenharmony_ci 1141e41f4b71Sopenharmony_ci**参数:** 1142e41f4b71Sopenharmony_ci 1143e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1144e41f4b71Sopenharmony_ci| ----- | --------------------------------------------------------- | ---- | -------------------------------------------------- | 1145e41f4b71Sopenharmony_ci| uri | string | 是 | 要插入的数据的路径。 | 1146e41f4b71Sopenharmony_ci| value | [ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket) | 是 | 要插入的数据。如果此参数为空,将插入一个空行。 | 1147e41f4b71Sopenharmony_ci 1148e41f4b71Sopenharmony_ci**返回值:** 1149e41f4b71Sopenharmony_ci 1150e41f4b71Sopenharmony_ci| 类型 | 说明 | 1151e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 1152e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。返回插入数据记录的索引。<br />因部分数据库(如KVDB)的相应接口并不支持返回索引,故若服务端使用了不支持索引的数据库,则此Promise也无法返回索引值。 | 1153e41f4b71Sopenharmony_ci 1154e41f4b71Sopenharmony_ci**错误码:** 1155e41f4b71Sopenharmony_ci 1156e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1157e41f4b71Sopenharmony_ci 1158e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1159e41f4b71Sopenharmony_ci| -------- | -------------------- | 1160e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1161e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1162e41f4b71Sopenharmony_ci 1163e41f4b71Sopenharmony_ci**示例:** 1164e41f4b71Sopenharmony_ci 1165e41f4b71Sopenharmony_ci```ts 1166e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1167e41f4b71Sopenharmony_ciimport { ValuesBucket } from '@kit.ArkData' 1168e41f4b71Sopenharmony_ci 1169e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1170e41f4b71Sopenharmony_cilet key1: string = "name"; 1171e41f4b71Sopenharmony_cilet value1: string = "rose1"; 1172e41f4b71Sopenharmony_cilet key2: string = "age"; 1173e41f4b71Sopenharmony_cilet value2: number = 21; 1174e41f4b71Sopenharmony_cilet key3: string = "salary"; 1175e41f4b71Sopenharmony_cilet value3: number = 20.5; 1176e41f4b71Sopenharmony_ciconst valueBucket: ValuesBucket = { 1177e41f4b71Sopenharmony_ci key1: value1, 1178e41f4b71Sopenharmony_ci key2: value2, 1179e41f4b71Sopenharmony_ci key3: value3, 1180e41f4b71Sopenharmony_ci} 1181e41f4b71Sopenharmony_citry { 1182e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1183e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).insert(uri, valueBucket).then((data: number) => { 1184e41f4b71Sopenharmony_ci console.info("insert succeed, data : " + data); 1185e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1186e41f4b71Sopenharmony_ci console.error(`insert error: code: ${err.code}, message: ${err.message} `); 1187e41f4b71Sopenharmony_ci }); 1188e41f4b71Sopenharmony_ci } 1189e41f4b71Sopenharmony_ci} catch (err) { 1190e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1191e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1192e41f4b71Sopenharmony_ci console.error(`insert error: code: ${code}, message: ${message} `); 1193e41f4b71Sopenharmony_ci}; 1194e41f4b71Sopenharmony_ci``` 1195e41f4b71Sopenharmony_ci 1196e41f4b71Sopenharmony_ci### delete 1197e41f4b71Sopenharmony_ci 1198e41f4b71Sopenharmony_cidelete(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<number>): void 1199e41f4b71Sopenharmony_ci 1200e41f4b71Sopenharmony_ci从数据库中删除一条或多条数据记录。使用callback异步回调。 1201e41f4b71Sopenharmony_ci 1202e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1203e41f4b71Sopenharmony_ci 1204e41f4b71Sopenharmony_ci**参数:** 1205e41f4b71Sopenharmony_ci 1206e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1207e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1208e41f4b71Sopenharmony_ci| uri | string | 是 | 要删除的数据的路径。 | 1209e41f4b71Sopenharmony_ci| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | 筛选条件。<br />delete接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB的删除目前仅支持inKeys谓词。谓词内方法为空时,默认全表删除。 | 1210e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当从数据库中删除一条或多条数据记录成功,err为undefined,data为获取到的已删除的数据记录数;否则为错误对象。<br />因部分数据库(如KVDB)的相应接口并不提供相应支持,故若服务端使用此数据库,则此callback也无法返回删除的数据记录数。 | 1211e41f4b71Sopenharmony_ci 1212e41f4b71Sopenharmony_ci**错误码:** 1213e41f4b71Sopenharmony_ci 1214e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1215e41f4b71Sopenharmony_ci 1216e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1217e41f4b71Sopenharmony_ci| -------- | -------------------- | 1218e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1219e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1220e41f4b71Sopenharmony_ci 1221e41f4b71Sopenharmony_ci**示例:** 1222e41f4b71Sopenharmony_ci 1223e41f4b71Sopenharmony_ci```ts 1224e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData' 1225e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1226e41f4b71Sopenharmony_ci 1227e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1228e41f4b71Sopenharmony_cilet da = new dataSharePredicates.DataSharePredicates(); 1229e41f4b71Sopenharmony_cida.equalTo("name", "ZhangSan"); 1230e41f4b71Sopenharmony_citry { 1231e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1232e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).delete(uri, da, (err: BusinessError, data: number) => { 1233e41f4b71Sopenharmony_ci if (err !== undefined) { 1234e41f4b71Sopenharmony_ci console.error(`delete error: code: ${err.code}, message: ${err.message} `); 1235e41f4b71Sopenharmony_ci return; 1236e41f4b71Sopenharmony_ci } 1237e41f4b71Sopenharmony_ci console.info("delete succeed, data : " + data); 1238e41f4b71Sopenharmony_ci }); 1239e41f4b71Sopenharmony_ci } 1240e41f4b71Sopenharmony_ci} catch (err) { 1241e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1242e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1243e41f4b71Sopenharmony_ci console.error(`delete error: code: ${code}, message: ${message} `); 1244e41f4b71Sopenharmony_ci}; 1245e41f4b71Sopenharmony_ci``` 1246e41f4b71Sopenharmony_ci 1247e41f4b71Sopenharmony_ci### delete 1248e41f4b71Sopenharmony_ci 1249e41f4b71Sopenharmony_cidelete(uri: string, predicates: dataSharePredicates.DataSharePredicates): Promise<number> 1250e41f4b71Sopenharmony_ci 1251e41f4b71Sopenharmony_ci从数据库中删除一条或多条数据记录。使用Promise异步回调。 1252e41f4b71Sopenharmony_ci 1253e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1254e41f4b71Sopenharmony_ci 1255e41f4b71Sopenharmony_ci**参数:** 1256e41f4b71Sopenharmony_ci 1257e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1258e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1259e41f4b71Sopenharmony_ci| uri | string | 是 | 要删除的数据的路径。 | 1260e41f4b71Sopenharmony_ci| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | 筛选条件。<br />delete接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB的删除目前仅支持inKeys谓词。谓词内方法为空时,默认全表删除。 | 1261e41f4b71Sopenharmony_ci 1262e41f4b71Sopenharmony_ci**返回值:** 1263e41f4b71Sopenharmony_ci 1264e41f4b71Sopenharmony_ci| 类型 | 说明 | 1265e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 1266e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。返回已删除的数据记录数。<br />因部分数据库(如KVDB)的相应接口并不提供相应支持,故若服务端使用此数据库,则此Promise也无法返回删除的数据记录数。 | 1267e41f4b71Sopenharmony_ci 1268e41f4b71Sopenharmony_ci**错误码:** 1269e41f4b71Sopenharmony_ci 1270e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1271e41f4b71Sopenharmony_ci 1272e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1273e41f4b71Sopenharmony_ci| -------- | -------------------- | 1274e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1275e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1276e41f4b71Sopenharmony_ci 1277e41f4b71Sopenharmony_ci**示例:** 1278e41f4b71Sopenharmony_ci 1279e41f4b71Sopenharmony_ci```ts 1280e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData' 1281e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1282e41f4b71Sopenharmony_ci 1283e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1284e41f4b71Sopenharmony_cilet da = new dataSharePredicates.DataSharePredicates(); 1285e41f4b71Sopenharmony_cida.equalTo("name", "ZhangSan"); 1286e41f4b71Sopenharmony_citry { 1287e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1288e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).delete(uri, da).then((data: number) => { 1289e41f4b71Sopenharmony_ci console.info("delete succeed, data : " + data); 1290e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1291e41f4b71Sopenharmony_ci console.error(`delete error: code: ${err.code}, message: ${err.message} `); 1292e41f4b71Sopenharmony_ci }); 1293e41f4b71Sopenharmony_ci } 1294e41f4b71Sopenharmony_ci} catch (err) { 1295e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1296e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1297e41f4b71Sopenharmony_ci console.error(`delete error: code: ${code}, message: ${message} `); 1298e41f4b71Sopenharmony_ci}; 1299e41f4b71Sopenharmony_ci``` 1300e41f4b71Sopenharmony_ci 1301e41f4b71Sopenharmony_ci### query 1302e41f4b71Sopenharmony_ci 1303e41f4b71Sopenharmony_ciquery(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>, callback: AsyncCallback<DataShareResultSet>): void 1304e41f4b71Sopenharmony_ci 1305e41f4b71Sopenharmony_ci查询数据库中的数据。使用callback异步回调。 1306e41f4b71Sopenharmony_ci 1307e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1308e41f4b71Sopenharmony_ci 1309e41f4b71Sopenharmony_ci**参数:** 1310e41f4b71Sopenharmony_ci 1311e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1312e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1313e41f4b71Sopenharmony_ci| uri | string | 是 | 要查询的数据的路径。 | 1314e41f4b71Sopenharmony_ci| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | 筛选条件。<br />query接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB目前仅支持inKeys和prefixKey。谓词内方法为空时,默认全表查询。 | 1315e41f4b71Sopenharmony_ci| columns | Array<string> | 是 | 要查询的列。如果此参数为空,则查询所有列。 | 1316e41f4b71Sopenharmony_ci| callback | AsyncCallback<[DataShareResultSet](js-apis-data-DataShareResultSet-sys.md#datashareresultset)> | 是 | 回调函数。当查询数据库中的数据成功,err为undefined,data为获取到的查询到的结果集;否则为错误对象。 | 1317e41f4b71Sopenharmony_ci 1318e41f4b71Sopenharmony_ci**错误码:** 1319e41f4b71Sopenharmony_ci 1320e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1321e41f4b71Sopenharmony_ci 1322e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1323e41f4b71Sopenharmony_ci| -------- | -------------------- | 1324e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1325e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1326e41f4b71Sopenharmony_ci 1327e41f4b71Sopenharmony_ci**示例:** 1328e41f4b71Sopenharmony_ci 1329e41f4b71Sopenharmony_ci```ts 1330e41f4b71Sopenharmony_ciimport { dataSharePredicates, DataShareResultSet } from '@kit.ArkData' 1331e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1332e41f4b71Sopenharmony_ci 1333e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1334e41f4b71Sopenharmony_cilet columns = ["*"]; 1335e41f4b71Sopenharmony_cilet da = new dataSharePredicates.DataSharePredicates(); 1336e41f4b71Sopenharmony_cida.equalTo("name", "ZhangSan"); 1337e41f4b71Sopenharmony_citry { 1338e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1339e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).query(uri, da, columns, (err: BusinessError, data: DataShareResultSet) => { 1340e41f4b71Sopenharmony_ci if (err !== undefined) { 1341e41f4b71Sopenharmony_ci console.error(`query error: code: ${err.code}, message: ${err.message} `); 1342e41f4b71Sopenharmony_ci return; 1343e41f4b71Sopenharmony_ci } 1344e41f4b71Sopenharmony_ci console.info("query succeed, rowCount : " + data.rowCount); 1345e41f4b71Sopenharmony_ci }); 1346e41f4b71Sopenharmony_ci } 1347e41f4b71Sopenharmony_ci} catch (err) { 1348e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1349e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1350e41f4b71Sopenharmony_ci console.error(`query error: code: ${code}, message: ${message} `); 1351e41f4b71Sopenharmony_ci}; 1352e41f4b71Sopenharmony_ci``` 1353e41f4b71Sopenharmony_ci 1354e41f4b71Sopenharmony_ci### query 1355e41f4b71Sopenharmony_ci 1356e41f4b71Sopenharmony_ciquery(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array<string>): Promise<DataShareResultSet> 1357e41f4b71Sopenharmony_ci 1358e41f4b71Sopenharmony_ci查询数据库中的数据。使用Promise异步回调。 1359e41f4b71Sopenharmony_ci 1360e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1361e41f4b71Sopenharmony_ci 1362e41f4b71Sopenharmony_ci**参数:** 1363e41f4b71Sopenharmony_ci 1364e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1365e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1366e41f4b71Sopenharmony_ci| uri | string | 是 | 要查询的数据的路径。 | 1367e41f4b71Sopenharmony_ci| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | 筛选条件。<br />query接口所支持的谓词方法取决于服务端所选用的数据库,如KVDB目前仅支持inKeys和prefixKey。谓词内方法为空时,默认全表查询。 | 1368e41f4b71Sopenharmony_ci| columns | Array<string> | 是 | 要查询的列。如果此参数为空,则查询所有列。 | 1369e41f4b71Sopenharmony_ci 1370e41f4b71Sopenharmony_ci**返回值:** 1371e41f4b71Sopenharmony_ci 1372e41f4b71Sopenharmony_ci| 类型 | 说明 | 1373e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | --------------------------------- | 1374e41f4b71Sopenharmony_ci| Promise<[DataShareResultSet](js-apis-data-DataShareResultSet-sys.md#datashareresultset)> | Promise对象。返回查询到的结果集。 | 1375e41f4b71Sopenharmony_ci 1376e41f4b71Sopenharmony_ci**错误码:** 1377e41f4b71Sopenharmony_ci 1378e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1379e41f4b71Sopenharmony_ci 1380e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1381e41f4b71Sopenharmony_ci| -------- | -------------------- | 1382e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1383e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1384e41f4b71Sopenharmony_ci 1385e41f4b71Sopenharmony_ci**示例:** 1386e41f4b71Sopenharmony_ci 1387e41f4b71Sopenharmony_ci```ts 1388e41f4b71Sopenharmony_ciimport { dataSharePredicates, DataShareResultSet } from '@kit.ArkData' 1389e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1390e41f4b71Sopenharmony_ci 1391e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1392e41f4b71Sopenharmony_cilet columns = ["*"]; 1393e41f4b71Sopenharmony_cilet da = new dataSharePredicates.DataSharePredicates(); 1394e41f4b71Sopenharmony_cida.equalTo("name", "ZhangSan"); 1395e41f4b71Sopenharmony_citry { 1396e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1397e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).query(uri, da, columns).then((data: DataShareResultSet) => { 1398e41f4b71Sopenharmony_ci console.info("query succeed, rowCount : " + data.rowCount); 1399e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1400e41f4b71Sopenharmony_ci console.error(`query error: code: ${err.code}, message: ${err.message} `); 1401e41f4b71Sopenharmony_ci }); 1402e41f4b71Sopenharmony_ci } 1403e41f4b71Sopenharmony_ci} catch (err) { 1404e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1405e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1406e41f4b71Sopenharmony_ci console.error(`query error: code: ${code}, message: ${message} `); 1407e41f4b71Sopenharmony_ci}; 1408e41f4b71Sopenharmony_ci``` 1409e41f4b71Sopenharmony_ci 1410e41f4b71Sopenharmony_ci### update 1411e41f4b71Sopenharmony_ci 1412e41f4b71Sopenharmony_ciupdate(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback<number>): void 1413e41f4b71Sopenharmony_ci 1414e41f4b71Sopenharmony_ci更新数据库中的数据记录。使用callback异步回调。 1415e41f4b71Sopenharmony_ci 1416e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1417e41f4b71Sopenharmony_ci 1418e41f4b71Sopenharmony_ci**参数:** 1419e41f4b71Sopenharmony_ci 1420e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1421e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1422e41f4b71Sopenharmony_ci| uri | string | 是 | 要更新的数据的路径。 | 1423e41f4b71Sopenharmony_ci| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | 筛选条件。<br />update接口是否支持谓词筛选条件取决于服务端所选用的数据库,如KVDB目前并不支持谓词筛选条件,仅RDB支持。谓词内方法为空时,默认全表更新。 | 1424e41f4b71Sopenharmony_ci| value | [ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket) | 是 | 要更新的数据。可以为null。 | 1425e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当更新数据库中的数据记录成功,err为undefined,data为获取到的更新的数据记录数;否则为错误对象。<br />因部分数据库(如KVDB)的相应接口并不提供相应支持,故若服务端使用此数据库,则此callback也无法返回更新的数据记录数。 | 1426e41f4b71Sopenharmony_ci 1427e41f4b71Sopenharmony_ci**错误码:** 1428e41f4b71Sopenharmony_ci 1429e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1430e41f4b71Sopenharmony_ci 1431e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1432e41f4b71Sopenharmony_ci| -------- | -------------------- | 1433e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1434e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1435e41f4b71Sopenharmony_ci 1436e41f4b71Sopenharmony_ci**示例:** 1437e41f4b71Sopenharmony_ci 1438e41f4b71Sopenharmony_ci```ts 1439e41f4b71Sopenharmony_ciimport { dataSharePredicates, ValuesBucket } from '@kit.ArkData' 1440e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1441e41f4b71Sopenharmony_ci 1442e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1443e41f4b71Sopenharmony_cilet da = new dataSharePredicates.DataSharePredicates(); 1444e41f4b71Sopenharmony_cida.equalTo("name", "ZhangSan"); 1445e41f4b71Sopenharmony_cilet key1: string = "name"; 1446e41f4b71Sopenharmony_cilet value1: string = "roe1" 1447e41f4b71Sopenharmony_cilet key2: string = "age"; 1448e41f4b71Sopenharmony_cilet value2: number = 21 1449e41f4b71Sopenharmony_cilet key3: string = "salary"; 1450e41f4b71Sopenharmony_cilet value3: number = 20.5; 1451e41f4b71Sopenharmony_ciconst va: ValuesBucket = { 1452e41f4b71Sopenharmony_ci key1: value1, 1453e41f4b71Sopenharmony_ci key2: value2, 1454e41f4b71Sopenharmony_ci key3: value3, 1455e41f4b71Sopenharmony_ci} 1456e41f4b71Sopenharmony_citry { 1457e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1458e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).update(uri, da, va, (err: BusinessError, data: number) => { 1459e41f4b71Sopenharmony_ci if (err !== undefined) { 1460e41f4b71Sopenharmony_ci console.error(`update error: code: ${err.code}, message: ${err.message} `); 1461e41f4b71Sopenharmony_ci return; 1462e41f4b71Sopenharmony_ci } 1463e41f4b71Sopenharmony_ci console.info("update succeed, data : " + data); 1464e41f4b71Sopenharmony_ci }); 1465e41f4b71Sopenharmony_ci } 1466e41f4b71Sopenharmony_ci} catch (err) { 1467e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1468e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1469e41f4b71Sopenharmony_ci console.error(`update error: code: ${code}, message: ${message} `); 1470e41f4b71Sopenharmony_ci}; 1471e41f4b71Sopenharmony_ci``` 1472e41f4b71Sopenharmony_ci 1473e41f4b71Sopenharmony_ci### update 1474e41f4b71Sopenharmony_ci 1475e41f4b71Sopenharmony_ciupdate(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket): Promise<number> 1476e41f4b71Sopenharmony_ci 1477e41f4b71Sopenharmony_ci更新数据库中的数据记录。使用Promise异步回调。 1478e41f4b71Sopenharmony_ci 1479e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1480e41f4b71Sopenharmony_ci 1481e41f4b71Sopenharmony_ci**参数:** 1482e41f4b71Sopenharmony_ci 1483e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1484e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1485e41f4b71Sopenharmony_ci| uri | string | 是 | 要更新的数据的路径。 | 1486e41f4b71Sopenharmony_ci| predicates | [dataSharePredicates.DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | 筛选条件。<br />update接口是否支持谓词筛选条件取决于服务端所选用的数据库,如KVDB目前并不支持谓词筛选条件,仅RDB支持。谓词内方法为空时,默认全表更新。 | 1487e41f4b71Sopenharmony_ci| value | [ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket) | 是 | 要更新的数据。可以为null。 | 1488e41f4b71Sopenharmony_ci 1489e41f4b71Sopenharmony_ci**返回值:** 1490e41f4b71Sopenharmony_ci 1491e41f4b71Sopenharmony_ci| 类型 | 说明 | 1492e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 1493e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。返回更新的数据记录数。<br />因部分数据库(如KVDB)的相应接口并不提供相应支持,故若服务端使用此数据库,则此Promise也无法返回更新的数据记录数。 | 1494e41f4b71Sopenharmony_ci 1495e41f4b71Sopenharmony_ci**错误码:** 1496e41f4b71Sopenharmony_ci 1497e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1498e41f4b71Sopenharmony_ci 1499e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1500e41f4b71Sopenharmony_ci| -------- | -------------------- | 1501e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1502e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1503e41f4b71Sopenharmony_ci 1504e41f4b71Sopenharmony_ci**示例:** 1505e41f4b71Sopenharmony_ci 1506e41f4b71Sopenharmony_ci```ts 1507e41f4b71Sopenharmony_ciimport { dataSharePredicates, ValuesBucket } from '@kit.ArkData' 1508e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1509e41f4b71Sopenharmony_ci 1510e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1511e41f4b71Sopenharmony_cilet da = new dataSharePredicates.DataSharePredicates(); 1512e41f4b71Sopenharmony_cida.equalTo("name", "ZhangSan"); 1513e41f4b71Sopenharmony_cilet key1: string = "name"; 1514e41f4b71Sopenharmony_cilet value1: string = "roe1" 1515e41f4b71Sopenharmony_cilet key2: string = "age"; 1516e41f4b71Sopenharmony_cilet value2: number = 21 1517e41f4b71Sopenharmony_cilet key3: string = "salary"; 1518e41f4b71Sopenharmony_cilet value3: number = 20.5; 1519e41f4b71Sopenharmony_ciconst va: ValuesBucket = { 1520e41f4b71Sopenharmony_ci key1: value1, 1521e41f4b71Sopenharmony_ci key2: value2, 1522e41f4b71Sopenharmony_ci key3: value3, 1523e41f4b71Sopenharmony_ci} 1524e41f4b71Sopenharmony_citry { 1525e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1526e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).update(uri, da, va).then((data: number) => { 1527e41f4b71Sopenharmony_ci console.info("update succeed, data : " + data); 1528e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1529e41f4b71Sopenharmony_ci console.error(`update error: code: ${err.code}, message: ${err.message} `); 1530e41f4b71Sopenharmony_ci }); 1531e41f4b71Sopenharmony_ci } 1532e41f4b71Sopenharmony_ci} catch (err) { 1533e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1534e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1535e41f4b71Sopenharmony_ci console.error(`update error: code: ${code}, message: ${message} `); 1536e41f4b71Sopenharmony_ci}; 1537e41f4b71Sopenharmony_ci``` 1538e41f4b71Sopenharmony_ci 1539e41f4b71Sopenharmony_ci### batchUpdate<sup>12+</sup> 1540e41f4b71Sopenharmony_ci 1541e41f4b71Sopenharmony_cibatchUpdate(operations: Record<string, Array<UpdateOperation>>): Promise<Record<string, Array<number>>> 1542e41f4b71Sopenharmony_ci 1543e41f4b71Sopenharmony_ci批量更新数据库中的数据记录,Record最多支持900K的数据,超出该限制更新失败;该接口的事务性取决于provider(数据提供方)。使用Promise异步回调。 1544e41f4b71Sopenharmony_ci 1545e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1546e41f4b71Sopenharmony_ci 1547e41f4b71Sopenharmony_ci**参数:** 1548e41f4b71Sopenharmony_ci 1549e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1550e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | -------------------------------------- | 1551e41f4b71Sopenharmony_ci| operations | Record<string, Array<[UpdateOperation](#updateoperation12)>> | 是 | 要更新数据的路径、筛选条件和数据集合。 | 1552e41f4b71Sopenharmony_ci 1553e41f4b71Sopenharmony_ci**返回值:** 1554e41f4b71Sopenharmony_ci 1555e41f4b71Sopenharmony_ci| 类型 | 说明 | 1556e41f4b71Sopenharmony_ci| ----------------------------------------------------- | ------------------------------------------------------------ | 1557e41f4b71Sopenharmony_ci| Promise<Record<string, Array<number>>> | Promise对象。返回更新的数据记录数集合,更新失败的UpdateOperation的数据记录数为-1。<br />因部分数据库(如KVDB)的相应接口并不提供相应支持,故若服务端使用此数据库,则此Promise也无法返回更新的数据记录数。 | 1558e41f4b71Sopenharmony_ci 1559e41f4b71Sopenharmony_ci**错误码:** 1560e41f4b71Sopenharmony_ci 1561e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1562e41f4b71Sopenharmony_ci 1563e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1564e41f4b71Sopenharmony_ci| -------- | ------------------------------------ | 1565e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1566e41f4b71Sopenharmony_ci| 15700000 | Inner error. | 1567e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed. | 1568e41f4b71Sopenharmony_ci 1569e41f4b71Sopenharmony_ci**示例:** 1570e41f4b71Sopenharmony_ci 1571e41f4b71Sopenharmony_ci```ts 1572e41f4b71Sopenharmony_ciimport { dataSharePredicates, ValuesBucket } from '@kit.ArkData' 1573e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1574e41f4b71Sopenharmony_ci 1575e41f4b71Sopenharmony_cilet record: Record<string, Array<dataShare.UpdateOperation>> = {}; 1576e41f4b71Sopenharmony_cilet operations1: Array<dataShare.UpdateOperation> = []; 1577e41f4b71Sopenharmony_cilet operations2: Array<dataShare.UpdateOperation> = []; 1578e41f4b71Sopenharmony_ci 1579e41f4b71Sopenharmony_cilet pre1: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1580e41f4b71Sopenharmony_cipre1.equalTo("name", "ZhangSan"); 1581e41f4b71Sopenharmony_cilet vb1: ValuesBucket = { 1582e41f4b71Sopenharmony_ci "name": "ZhangSan1", 1583e41f4b71Sopenharmony_ci} 1584e41f4b71Sopenharmony_cilet operation1: dataShare.UpdateOperation = { 1585e41f4b71Sopenharmony_ci values: vb1, 1586e41f4b71Sopenharmony_ci predicates: pre1 1587e41f4b71Sopenharmony_ci} 1588e41f4b71Sopenharmony_cioperations1.push(operation1); 1589e41f4b71Sopenharmony_ci 1590e41f4b71Sopenharmony_cilet pre2: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1591e41f4b71Sopenharmony_cipre2.equalTo("name", "ZhangSan2"); 1592e41f4b71Sopenharmony_cilet vb2: ValuesBucket = { 1593e41f4b71Sopenharmony_ci "name": "ZhangSan3", 1594e41f4b71Sopenharmony_ci} 1595e41f4b71Sopenharmony_cilet operation2: dataShare.UpdateOperation = { 1596e41f4b71Sopenharmony_ci values: vb2, 1597e41f4b71Sopenharmony_ci predicates: pre2 1598e41f4b71Sopenharmony_ci} 1599e41f4b71Sopenharmony_cioperations2.push(operation2); 1600e41f4b71Sopenharmony_cirecord["uri1"] = operations1; 1601e41f4b71Sopenharmony_cirecord["uri2"] = operations2; 1602e41f4b71Sopenharmony_ci 1603e41f4b71Sopenharmony_citry { 1604e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1605e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).batchUpdate(record).then((data: Record<string, Array<number>>) => { 1606e41f4b71Sopenharmony_ci // 遍历data获取每条数据的更新结果, value为更新成功的数据记录数,若小于0,说明该次更新失败 1607e41f4b71Sopenharmony_ci let a = Object.entries(data); 1608e41f4b71Sopenharmony_ci for (let i = 0; i < a.length; i++) { 1609e41f4b71Sopenharmony_ci let key = a[i][0]; 1610e41f4b71Sopenharmony_ci let values = a[i][1] 1611e41f4b71Sopenharmony_ci console.info(`Update uri:${key}`); 1612e41f4b71Sopenharmony_ci for (const value of values) { 1613e41f4b71Sopenharmony_ci console.info(`Update result:${value}`); 1614e41f4b71Sopenharmony_ci } 1615e41f4b71Sopenharmony_ci } 1616e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1617e41f4b71Sopenharmony_ci console.error(`Batch update error: code: ${err.code}, message: ${err.message} `); 1618e41f4b71Sopenharmony_ci }); 1619e41f4b71Sopenharmony_ci } 1620e41f4b71Sopenharmony_ci} catch (err) { 1621e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1622e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1623e41f4b71Sopenharmony_ci console.error(`Batch update error: code: ${code}, message: ${message} `); 1624e41f4b71Sopenharmony_ci}; 1625e41f4b71Sopenharmony_ci``` 1626e41f4b71Sopenharmony_ci 1627e41f4b71Sopenharmony_ci### batchInsert 1628e41f4b71Sopenharmony_ci 1629e41f4b71Sopenharmony_cibatchInsert(uri: string, values: Array<ValuesBucket>, callback: AsyncCallback<number>): void 1630e41f4b71Sopenharmony_ci 1631e41f4b71Sopenharmony_ci将批量数据插入数据库。使用callback异步回调。暂不支持静默访问。 1632e41f4b71Sopenharmony_ci 1633e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1634e41f4b71Sopenharmony_ci 1635e41f4b71Sopenharmony_ci**参数:** 1636e41f4b71Sopenharmony_ci 1637e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1638e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 1639e41f4b71Sopenharmony_ci| uri | string | 是 | 要插入的数据的路径。 | 1640e41f4b71Sopenharmony_ci| values | Array<[ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket)> | 是 | 要插入的数据。 | 1641e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当将批量数据插入数据库成功,err为undefined,data为获取到的插入的数据记录数;否则为错误对象。<br />因部分数据库(如KVDB)的相应接口并不提供相应支持,故若服务端使用此数据库,则此Promise也无法返回插入的数据记录数。 | 1642e41f4b71Sopenharmony_ci 1643e41f4b71Sopenharmony_ci**错误码:** 1644e41f4b71Sopenharmony_ci 1645e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1646e41f4b71Sopenharmony_ci 1647e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1648e41f4b71Sopenharmony_ci| -------- | -------------------- | 1649e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1650e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1651e41f4b71Sopenharmony_ci 1652e41f4b71Sopenharmony_ci**示例:** 1653e41f4b71Sopenharmony_ci 1654e41f4b71Sopenharmony_ci```ts 1655e41f4b71Sopenharmony_ciimport { ValuesBucket } from '@kit.ArkData' 1656e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1657e41f4b71Sopenharmony_ci 1658e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1659e41f4b71Sopenharmony_cilet key1: string = "name"; 1660e41f4b71Sopenharmony_cilet value11: string = "roe11" 1661e41f4b71Sopenharmony_cilet key2: string = "age"; 1662e41f4b71Sopenharmony_cilet value21: number = 21; 1663e41f4b71Sopenharmony_cilet key3: string = "salary"; 1664e41f4b71Sopenharmony_cilet value31: number = 20.5; 1665e41f4b71Sopenharmony_cilet valuesBucket1: ValuesBucket = { 1666e41f4b71Sopenharmony_ci key1: value11, 1667e41f4b71Sopenharmony_ci key2: value21, 1668e41f4b71Sopenharmony_ci key3: value31, 1669e41f4b71Sopenharmony_ci} 1670e41f4b71Sopenharmony_cilet vbs = new Array(valuesBucket1); 1671e41f4b71Sopenharmony_citry { 1672e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1673e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).batchInsert(uri, vbs, (err, data) => { 1674e41f4b71Sopenharmony_ci if (err !== undefined) { 1675e41f4b71Sopenharmony_ci console.error(`batchInsert error: code: ${err.code}, message: ${err.message} `); 1676e41f4b71Sopenharmony_ci return; 1677e41f4b71Sopenharmony_ci } 1678e41f4b71Sopenharmony_ci console.info("batchInsert succeed, data : " + data); 1679e41f4b71Sopenharmony_ci }); 1680e41f4b71Sopenharmony_ci } 1681e41f4b71Sopenharmony_ci} catch (err) { 1682e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1683e41f4b71Sopenharmony_ci let message = (err as BusinessError).message; 1684e41f4b71Sopenharmony_ci console.error(`batchInsert error: code: ${code}, message: ${message} `); 1685e41f4b71Sopenharmony_ci}; 1686e41f4b71Sopenharmony_ci``` 1687e41f4b71Sopenharmony_ci 1688e41f4b71Sopenharmony_ci### batchInsert 1689e41f4b71Sopenharmony_ci 1690e41f4b71Sopenharmony_cibatchInsert(uri: string, values: Array<ValuesBucket>): Promise<number> 1691e41f4b71Sopenharmony_ci 1692e41f4b71Sopenharmony_ci将批量数据插入数据库。使用Promise异步回调。暂不支持静默访问。 1693e41f4b71Sopenharmony_ci 1694e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1695e41f4b71Sopenharmony_ci 1696e41f4b71Sopenharmony_ci**参数:** 1697e41f4b71Sopenharmony_ci 1698e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1699e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------ | 1700e41f4b71Sopenharmony_ci| uri | string | 是 | 要插入的数据的路径。 | 1701e41f4b71Sopenharmony_ci| values | Array<[ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket)> | 是 | 要插入的数据。 | 1702e41f4b71Sopenharmony_ci 1703e41f4b71Sopenharmony_ci**返回值:** 1704e41f4b71Sopenharmony_ci 1705e41f4b71Sopenharmony_ci| 类型 | 说明 | 1706e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 1707e41f4b71Sopenharmony_ci| Promise<number> | Promise对象。返回插入的数据记录数。<br />因部分数据库(如KVDB)的相应接口并不提供相应支持,故若服务端使用此数据库,则此Promise也无法返回插入的数据记录数。 | 1708e41f4b71Sopenharmony_ci 1709e41f4b71Sopenharmony_ci**错误码:** 1710e41f4b71Sopenharmony_ci 1711e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1712e41f4b71Sopenharmony_ci 1713e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1714e41f4b71Sopenharmony_ci| -------- | -------------------- | 1715e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1716e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1717e41f4b71Sopenharmony_ci 1718e41f4b71Sopenharmony_ci**示例:** 1719e41f4b71Sopenharmony_ci 1720e41f4b71Sopenharmony_ci```ts 1721e41f4b71Sopenharmony_ciimport { ValuesBucket } from '@kit.ArkData' 1722e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1723e41f4b71Sopenharmony_ci 1724e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1725e41f4b71Sopenharmony_cilet key1: string = "name"; 1726e41f4b71Sopenharmony_cilet value11: string = "roe11" 1727e41f4b71Sopenharmony_cilet key2: string = "age"; 1728e41f4b71Sopenharmony_cilet value21: number = 21; 1729e41f4b71Sopenharmony_cilet key3: string = "salary"; 1730e41f4b71Sopenharmony_cilet value31: number = 20.5; 1731e41f4b71Sopenharmony_cilet valuesBucket1: ValuesBucket = { 1732e41f4b71Sopenharmony_ci key1: value11, 1733e41f4b71Sopenharmony_ci key2: value21, 1734e41f4b71Sopenharmony_ci key3: value31, 1735e41f4b71Sopenharmony_ci} 1736e41f4b71Sopenharmony_cilet vbs = new Array(valuesBucket1); 1737e41f4b71Sopenharmony_citry { 1738e41f4b71Sopenharmony_ci if (dataShareHelper != undefined) { 1739e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).batchInsert(uri, vbs).then((data: number) => { 1740e41f4b71Sopenharmony_ci console.info("batchInsert succeed, data : " + data); 1741e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1742e41f4b71Sopenharmony_ci console.error(`batchInsert error: code: ${err.code}, message: ${err.message} `); 1743e41f4b71Sopenharmony_ci }); 1744e41f4b71Sopenharmony_ci } 1745e41f4b71Sopenharmony_ci} catch (err) { 1746e41f4b71Sopenharmony_ci let code = (err as BusinessError).code; 1747e41f4b71Sopenharmony_ci let message = (err as BusinessError).message 1748e41f4b71Sopenharmony_ci console.error(`batchInsert error: code: ${code}, message: ${message} `); 1749e41f4b71Sopenharmony_ci}; 1750e41f4b71Sopenharmony_ci``` 1751e41f4b71Sopenharmony_ci 1752e41f4b71Sopenharmony_ci### close<sup>12+</sup> 1753e41f4b71Sopenharmony_ci 1754e41f4b71Sopenharmony_ciclose(): Promise <void> 1755e41f4b71Sopenharmony_ci 1756e41f4b71Sopenharmony_ci关闭DataShareHelper实例,调用后该实例失效。使用Promise异步回调。 1757e41f4b71Sopenharmony_ci 1758e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1759e41f4b71Sopenharmony_ci 1760e41f4b71Sopenharmony_ci**返回值:** 1761e41f4b71Sopenharmony_ci 1762e41f4b71Sopenharmony_ci| 类型 | 说明 | 1763e41f4b71Sopenharmony_ci| ------------------- | -------------------------------------- | 1764e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 1765e41f4b71Sopenharmony_ci 1766e41f4b71Sopenharmony_ci**错误码:** 1767e41f4b71Sopenharmony_ci 1768e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)。 1769e41f4b71Sopenharmony_ci 1770e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1771e41f4b71Sopenharmony_ci| -------- | ------------ | 1772e41f4b71Sopenharmony_ci| 15700000 | Inner error. | 1773e41f4b71Sopenharmony_ci 1774e41f4b71Sopenharmony_ci**示例:** 1775e41f4b71Sopenharmony_ci 1776e41f4b71Sopenharmony_ci```ts 1777e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 1778e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).close(); 1779e41f4b71Sopenharmony_ci} 1780e41f4b71Sopenharmony_ci``` 1781e41f4b71Sopenharmony_ci 1782e41f4b71Sopenharmony_ci### normalizeUri 1783e41f4b71Sopenharmony_ci 1784e41f4b71Sopenharmony_cinormalizeUri(uri: string, callback: AsyncCallback<string>): void 1785e41f4b71Sopenharmony_ci 1786e41f4b71Sopenharmony_ci将给定的DataShare URI转换为规范化URI,规范化URI可供跨设备使用,DataShare URI仅供本地环境中使用。使用callback异步回调。暂不支持静默访问。 1787e41f4b71Sopenharmony_ci 1788e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1789e41f4b71Sopenharmony_ci 1790e41f4b71Sopenharmony_ci**参数:** 1791e41f4b71Sopenharmony_ci 1792e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1793e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | -------------------------------------------------------- | 1794e41f4b71Sopenharmony_ci| uri | string | 是 | 要规范化的[URI](../apis-arkts/js-apis-uri.md#uri)。 | 1795e41f4b71Sopenharmony_ci| callback | AsyncCallback<string> | 是 | 回调函数。当将给定的DataShare URI转换为规范化URI成功,err为undefined,data为获取到的规范化URI(如果支持URI规范化,则返回规范化URI,否则返回空);否则为错误对象。 | 1796e41f4b71Sopenharmony_ci 1797e41f4b71Sopenharmony_ci**错误码:** 1798e41f4b71Sopenharmony_ci 1799e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1800e41f4b71Sopenharmony_ci 1801e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1802e41f4b71Sopenharmony_ci| -------- | -------------------- | 1803e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1804e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1805e41f4b71Sopenharmony_ci 1806e41f4b71Sopenharmony_ci**示例:** 1807e41f4b71Sopenharmony_ci 1808e41f4b71Sopenharmony_ci```ts 1809e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1810e41f4b71Sopenharmony_ci 1811e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1812e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 1813e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).normalizeUri(uri, (err: BusinessError, data: string) => { 1814e41f4b71Sopenharmony_ci if (err !== undefined) { 1815e41f4b71Sopenharmony_ci console.info("normalizeUri failed, error message : " + err); 1816e41f4b71Sopenharmony_ci } else { 1817e41f4b71Sopenharmony_ci console.info("normalizeUri = " + data); 1818e41f4b71Sopenharmony_ci } 1819e41f4b71Sopenharmony_ci }); 1820e41f4b71Sopenharmony_ci} 1821e41f4b71Sopenharmony_ci``` 1822e41f4b71Sopenharmony_ci 1823e41f4b71Sopenharmony_ci### normalizeUri 1824e41f4b71Sopenharmony_ci 1825e41f4b71Sopenharmony_cinormalizeUri(uri: string): Promise<string> 1826e41f4b71Sopenharmony_ci 1827e41f4b71Sopenharmony_ci将给定的DataShare URI转换为规范化URI,规范化URI可供跨设备使用,DataShare URI仅供本地环境中使用。使用Promise异步回调。暂不支持静默访问。 1828e41f4b71Sopenharmony_ci 1829e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1830e41f4b71Sopenharmony_ci 1831e41f4b71Sopenharmony_ci**参数:** 1832e41f4b71Sopenharmony_ci 1833e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1834e41f4b71Sopenharmony_ci| ---- | ------ | ---- | ----------------------------------------- | 1835e41f4b71Sopenharmony_ci| uri | string | 是 | 要规范化的[URI](../apis-arkts/js-apis-uri.md#uri)。 | 1836e41f4b71Sopenharmony_ci 1837e41f4b71Sopenharmony_ci**返回值:** 1838e41f4b71Sopenharmony_ci 1839e41f4b71Sopenharmony_ci| 类型 | 说明 | 1840e41f4b71Sopenharmony_ci| ---------------- | ---------------------------------------------- | 1841e41f4b71Sopenharmony_ci| Promise<string> | Promise对象。如果支持URI规范化,则返回规范化URI,否则返回空。 | 1842e41f4b71Sopenharmony_ci 1843e41f4b71Sopenharmony_ci**错误码:** 1844e41f4b71Sopenharmony_ci 1845e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1846e41f4b71Sopenharmony_ci 1847e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1848e41f4b71Sopenharmony_ci| -------- | -------------------- | 1849e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1850e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1851e41f4b71Sopenharmony_ci 1852e41f4b71Sopenharmony_ci**示例:** 1853e41f4b71Sopenharmony_ci 1854e41f4b71Sopenharmony_ci```ts 1855e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1856e41f4b71Sopenharmony_ci 1857e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1858e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 1859e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).normalizeUri(uri).then((data: string) => { 1860e41f4b71Sopenharmony_ci console.info("normalizeUri = " + data); 1861e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1862e41f4b71Sopenharmony_ci console.info("normalizeUri failed, error message : " + err); 1863e41f4b71Sopenharmony_ci }); 1864e41f4b71Sopenharmony_ci} 1865e41f4b71Sopenharmony_ci``` 1866e41f4b71Sopenharmony_ci 1867e41f4b71Sopenharmony_ci### denormalizeUri 1868e41f4b71Sopenharmony_ci 1869e41f4b71Sopenharmony_cidenormalizeUri(uri: string, callback: AsyncCallback<string>): void 1870e41f4b71Sopenharmony_ci 1871e41f4b71Sopenharmony_ci将指定的URI转换为非规范化URI。使用callback异步回调。暂不支持静默访问。 1872e41f4b71Sopenharmony_ci 1873e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1874e41f4b71Sopenharmony_ci 1875e41f4b71Sopenharmony_ci**参数:** 1876e41f4b71Sopenharmony_ci 1877e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1878e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | --------------------------------------------------- | 1879e41f4b71Sopenharmony_ci| uri | string | 是 | 要反规范化的[URI](../apis-arkts/js-apis-uri.md#uri)。 | 1880e41f4b71Sopenharmony_ci| callback | AsyncCallback<string> | 是 | 回调函数。当将指定的URI转换为非规范化URI,err为undefined,data为获取到的反规范化URI(如果反规范化成功,则返回反规范化的URI;如果无需进行反规范化,则返回原始URI;若不支持则返回空);否则为错误对象。 | 1881e41f4b71Sopenharmony_ci 1882e41f4b71Sopenharmony_ci**错误码:** 1883e41f4b71Sopenharmony_ci 1884e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1885e41f4b71Sopenharmony_ci 1886e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1887e41f4b71Sopenharmony_ci| -------- | -------------------- | 1888e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1889e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1890e41f4b71Sopenharmony_ci 1891e41f4b71Sopenharmony_ci**示例:** 1892e41f4b71Sopenharmony_ci 1893e41f4b71Sopenharmony_ci```ts 1894e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1895e41f4b71Sopenharmony_ci 1896e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1897e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 1898e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).denormalizeUri(uri, (err: BusinessError, data: string) => { 1899e41f4b71Sopenharmony_ci if (err !== undefined) { 1900e41f4b71Sopenharmony_ci console.error("denormalizeUri failed, error message : " + err); 1901e41f4b71Sopenharmony_ci } else { 1902e41f4b71Sopenharmony_ci console.info("denormalizeUri = " + data); 1903e41f4b71Sopenharmony_ci } 1904e41f4b71Sopenharmony_ci }); 1905e41f4b71Sopenharmony_ci} 1906e41f4b71Sopenharmony_ci``` 1907e41f4b71Sopenharmony_ci 1908e41f4b71Sopenharmony_ci### denormalizeUri 1909e41f4b71Sopenharmony_ci 1910e41f4b71Sopenharmony_cidenormalizeUri(uri: string): Promise<string> 1911e41f4b71Sopenharmony_ci 1912e41f4b71Sopenharmony_ci将指定的URI转换为非规范化URI。使用Promise异步回调。暂不支持静默访问。 1913e41f4b71Sopenharmony_ci 1914e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1915e41f4b71Sopenharmony_ci 1916e41f4b71Sopenharmony_ci**参数:** 1917e41f4b71Sopenharmony_ci 1918e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1919e41f4b71Sopenharmony_ci| ---- | ------ | ---- | ------------------------------------------- | 1920e41f4b71Sopenharmony_ci| uri | string | 是 | 要反规范化的[URI](../apis-arkts/js-apis-uri.md#uri)。 | 1921e41f4b71Sopenharmony_ci 1922e41f4b71Sopenharmony_ci**返回值:** 1923e41f4b71Sopenharmony_ci 1924e41f4b71Sopenharmony_ci| 类型 | 说明 | 1925e41f4b71Sopenharmony_ci| ---------------- | ----------------------------------------- | 1926e41f4b71Sopenharmony_ci| Promise<string> | Promise对象。如果反规范化成功,则返回反规范化的URI;如果无需执行任何操作,则返回原始URI;若不支持则返回空。 | 1927e41f4b71Sopenharmony_ci 1928e41f4b71Sopenharmony_ci**错误码:** 1929e41f4b71Sopenharmony_ci 1930e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1931e41f4b71Sopenharmony_ci 1932e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1933e41f4b71Sopenharmony_ci| -------- | -------------------- | 1934e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 1935e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1936e41f4b71Sopenharmony_ci 1937e41f4b71Sopenharmony_ci**示例:** 1938e41f4b71Sopenharmony_ci 1939e41f4b71Sopenharmony_ci```ts 1940e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit' 1941e41f4b71Sopenharmony_ci 1942e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1943e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 1944e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).denormalizeUri(uri).then((data: string) => { 1945e41f4b71Sopenharmony_ci console.info("denormalizeUri = " + data); 1946e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1947e41f4b71Sopenharmony_ci console.error("denormalizeUri failed, error message : " + err); 1948e41f4b71Sopenharmony_ci }); 1949e41f4b71Sopenharmony_ci} 1950e41f4b71Sopenharmony_ci``` 1951e41f4b71Sopenharmony_ci 1952e41f4b71Sopenharmony_ci### notifyChange 1953e41f4b71Sopenharmony_ci 1954e41f4b71Sopenharmony_cinotifyChange(uri: string, callback: AsyncCallback<void>): void 1955e41f4b71Sopenharmony_ci 1956e41f4b71Sopenharmony_ci通知已注册的观察者指定URI对应的数据资源已发生变更。使用callback异步回调。暂不支持静默访问。 1957e41f4b71Sopenharmony_ci 1958e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1959e41f4b71Sopenharmony_ci 1960e41f4b71Sopenharmony_ci**参数:** 1961e41f4b71Sopenharmony_ci 1962e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1963e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------ | 1964e41f4b71Sopenharmony_ci| uri | string | 是 | 表示指定的数据路径。 | 1965e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当通知已注册的观察者指定URI对应的数据资源已发生变更成功,err为undefined;否则为错误对象。 | 1966e41f4b71Sopenharmony_ci 1967e41f4b71Sopenharmony_ci**错误码:** 1968e41f4b71Sopenharmony_ci 1969e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 1970e41f4b71Sopenharmony_ci 1971e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1972e41f4b71Sopenharmony_ci| -------- | -------------------- | 1973e41f4b71Sopenharmony_ci| 401 | Parameter error.Mandatory parameters are left unspecified.| 1974e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 1975e41f4b71Sopenharmony_ci 1976e41f4b71Sopenharmony_ci**示例:** 1977e41f4b71Sopenharmony_ci 1978e41f4b71Sopenharmony_ci```ts 1979e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 1980e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 1981e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).notifyChange(uri, () => { 1982e41f4b71Sopenharmony_ci console.info("***** notifyChange *****"); 1983e41f4b71Sopenharmony_ci }); 1984e41f4b71Sopenharmony_ci} 1985e41f4b71Sopenharmony_ci``` 1986e41f4b71Sopenharmony_ci 1987e41f4b71Sopenharmony_ci### notifyChange 1988e41f4b71Sopenharmony_ci 1989e41f4b71Sopenharmony_cinotifyChange(uri: string): Promise<void> 1990e41f4b71Sopenharmony_ci 1991e41f4b71Sopenharmony_ci通知已注册的观察者指定URI对应的数据资源已发生变更。使用Promise异步回调。暂不支持静默访问。 1992e41f4b71Sopenharmony_ci 1993e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 1994e41f4b71Sopenharmony_ci 1995e41f4b71Sopenharmony_ci**参数:** 1996e41f4b71Sopenharmony_ci 1997e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1998e41f4b71Sopenharmony_ci| ---- | ------ | ---- | -------------------- | 1999e41f4b71Sopenharmony_ci| uri | string | 是 | 表示指定的数据路径。 | 2000e41f4b71Sopenharmony_ci 2001e41f4b71Sopenharmony_ci**返回值:** 2002e41f4b71Sopenharmony_ci 2003e41f4b71Sopenharmony_ci| 类型 | 说明 | 2004e41f4b71Sopenharmony_ci| -------------- | --------------------- | 2005e41f4b71Sopenharmony_ci| Promise<void> | Promise对象。无返回结果的Promise对象。 | 2006e41f4b71Sopenharmony_ci 2007e41f4b71Sopenharmony_ci**错误码:** 2008e41f4b71Sopenharmony_ci 2009e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 2010e41f4b71Sopenharmony_ci 2011e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2012e41f4b71Sopenharmony_ci| -------- | -------------------- | 2013e41f4b71Sopenharmony_ci| 401 | Parameter error.Mandatory parameters are left unspecified.| 2014e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 2015e41f4b71Sopenharmony_ci 2016e41f4b71Sopenharmony_ci**示例:** 2017e41f4b71Sopenharmony_ci 2018e41f4b71Sopenharmony_ci```ts 2019e41f4b71Sopenharmony_cilet uri = ("datashare:///com.samples.datasharetest.DataShare"); 2020e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 2021e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).notifyChange(uri); 2022e41f4b71Sopenharmony_ci} 2023e41f4b71Sopenharmony_ci``` 2024e41f4b71Sopenharmony_ci 2025e41f4b71Sopenharmony_ci### notifyChange<sup>12+</sup> 2026e41f4b71Sopenharmony_ci 2027e41f4b71Sopenharmony_cinotifyChange(data: ChangeInfo): Promise<void> 2028e41f4b71Sopenharmony_ci 2029e41f4b71Sopenharmony_ci通知已注册的观察者指定URI对应的数据资源已发生变更类型及变更内容。使用Promise异步回调。仅支持非静默访问。 2030e41f4b71Sopenharmony_ci 2031e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.DataShare.Consumer 2032e41f4b71Sopenharmony_ci 2033e41f4b71Sopenharmony_ci**参数:** 2034e41f4b71Sopenharmony_ci 2035e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2036e41f4b71Sopenharmony_ci| ---- | ------ | ---- | -------------------- | 2037e41f4b71Sopenharmony_ci| data | [ChangeInfo](#changeinfo12) | 是 | 表示数据变更类型、变化的uri、变更的数据内容。 | 2038e41f4b71Sopenharmony_ci 2039e41f4b71Sopenharmony_ci**返回值:** 2040e41f4b71Sopenharmony_ci 2041e41f4b71Sopenharmony_ci| 类型 | 说明 | 2042e41f4b71Sopenharmony_ci| -------------- | --------------------- | 2043e41f4b71Sopenharmony_ci| Promise<void> | 无返回结果的Promise对象。 | 2044e41f4b71Sopenharmony_ci 2045e41f4b71Sopenharmony_ci**错误码:** 2046e41f4b71Sopenharmony_ci 2047e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[数据共享错误码](errorcode-datashare.md)和[通用错误码](../errorcode-universal.md)。 2048e41f4b71Sopenharmony_ci 2049e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2050e41f4b71Sopenharmony_ci| -------- | -------------------- | 2051e41f4b71Sopenharmony_ci| 401 | Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 2.Incorrect parameters types.| 2052e41f4b71Sopenharmony_ci| 15700013 | The DataShareHelper instance is already closed.| 2053e41f4b71Sopenharmony_ci 2054e41f4b71Sopenharmony_ci**示例:** 2055e41f4b71Sopenharmony_ci 2056e41f4b71Sopenharmony_ci```ts 2057e41f4b71Sopenharmony_ciimport { ValuesBucket } from '@kit.ArkData' 2058e41f4b71Sopenharmony_ci 2059e41f4b71Sopenharmony_cilet dsUri = ("datashare:///com.acts.datasharetest"); 2060e41f4b71Sopenharmony_cilet bucket1: ValuesBucket = {"name": "LiSi"}; 2061e41f4b71Sopenharmony_cilet bucket2: ValuesBucket = {"name": "WangWu"}; 2062e41f4b71Sopenharmony_cilet bucket3: ValuesBucket = {"name": "ZhaoLiu"}; 2063e41f4b71Sopenharmony_cilet people: Array<ValuesBucket> = new Array(bucket1, bucket2, bucket3); 2064e41f4b71Sopenharmony_cilet changeData:dataShare.ChangeInfo= { type:dataShare.ChangeType.INSERT, uri:dsUri, values:people}; 2065e41f4b71Sopenharmony_ciif (dataShareHelper != undefined) { 2066e41f4b71Sopenharmony_ci (dataShareHelper as dataShare.DataShareHelper).notifyChange(changeData); 2067e41f4b71Sopenharmony_ci} 2068e41f4b71Sopenharmony_ci```