interface_sdk-js/api/@ohos.data.rdb.d.ts

437 lines
18 KiB
TypeScript
Raw Normal View History

/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { AsyncCallback } from './basic';
import { ResultSet } from './data/rdb/resultSet';
declare namespace rdb {
/**
* Obtains an RDB store.
*
* You can set parameters of the RDB store as required. In general, this method is recommended
* to obtain a rdb store.
*
* @param config Indicates the configuration of the database related to this RDB store. The configurations include
* the database path, storage mode, and whether the database is read-only.
* @param version Indicates the database version for upgrade or downgrade.
* @return Returns an RDB store {@link ohos.data.rdb.RdbStore}.
* @since 7
*/
function getRdbStore(config: StoreConfig, version: number, callback: AsyncCallback<RdbStore>): void;
function getRdbStore(config: StoreConfig, version: number): Promise<RdbStore>;
/**
* Deletes the database with a specified name.
*
* @param name Indicates the database name.
* @return Returns true if the database is deleted; returns false otherwise.
* @since 7
*/
function deleteRdbStore(name: string, callback: AsyncCallback<void>): void;
function deleteRdbStore(name: string): Promise<void>;
/**
* Provides methods for managing the relational database (RDB).
*
* This class provides methods for creating, querying, updating, and deleting RDBs.
*
* @devices phone, tablet, tv, wearable, car
* @Syscap SystemCapability.Data.DATA_APPDATAMGR
* @version 7
*/
interface RdbStore {
/**
* Inserts a row of data into the target table.
*
* @param name Indicates the target table.
* @param values Indicates the row of data to be inserted into the table.
* @return Returns the row ID if the operation is successful; returns -1 otherwise.
* @since 7
*/
insert(name: string, values: ValuesBucket, callback: AsyncCallback<number>): void;
insert(name: string, values: ValuesBucket): Promise<number>;
/**
* Updates data in the database based on a a specified instance object of rdbPredicates.
*
* @param values Indicates the row of data to be updated in the database.The key-value pairs are associated with column names of the database table.
* @param rdbPredicates Indicates the specified update condition by the instance object of RdbPredicates.
* @return Returns the number of affected rows.
* @since 7
*/
update(values: ValuesBucket, rdbPredicates: RdbPredicates, callback: AsyncCallback<number>): void;
update(values: ValuesBucket, rdbPredicates: RdbPredicates): Promise<number>;
/**
* Deletes data from the database based on a specified instance object of rdbPredicates.
*
* @param rdbPredicates Indicates the specified delete condition by the instance object of RdbPredicates.
* @return Returns the number of affected rows.
* @since 7
*/
delete(rdbPredicates: RdbPredicates, callback: AsyncCallback<number>): void;
delete(rdbPredicates: RdbPredicates): Promise<number>;
/**
* Queries data in the database based on specified conditions.
*
* @param rdbPredicates Indicates the specified query condition by the instance object of RdbPredicates.
* @param columns Indicates the columns to query. If the value is null, the query applies to all columns.
* @return Returns a ResultSet object if the operation is successful;
* @since 7
*/
query(rdbPredicates: RdbPredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>): void;
query(rdbPredicates: RdbPredicates, columns: Array<string>): Promise<ResultSet>;
/**
* Executes an SQL statement that contains specified parameters but returns no value.
*
* @param sql Indicates the SQL statement to execute.
* @param bindArgs Indicates the values of the parameters in the SQL statement. The values are strings.
* @since 7
*/
executeSql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<void>): void;
executeSql(sql: string, bindArgs: Array<ValueType>): Promise<void>;
}
/**
* Indicates possible value types
*/
type ValueType = number | string | boolean;
/**
* Values in buckets are stored in key-value pairs
*/
type ValuesBucket = {
[key: string]: ValueType | Uint8Array | null;
}
/**
* Manages relational database configurations.
*
* @devices phone, tablet, tv, wearable, car
* @Syscap SystemCapability.Data.DATA_APPDATAMGR
* @version 7
*/
interface StoreConfig {
/**
* Indicates the name of the database file
*/
name: string;
}
/**
* Manages relational database configurations.
*
* @devices phone, tablet, tv, wearable, car
* @Syscap SystemCapability.Data.DATA_APPDATAMGR
* @version 7
*/
class RdbPredicates {
/**
* A parameterized constructor used to create an RdbPredicates instance.
* name Indicates the table name of the database.
*/
constructor(name: string)
/**
* Configures the RdbPredicates to match the field whose data type is ValueType and value is equal
* to a specified value.
*
* @param field Indicates the column name in the database table.
* @param value Indicates the value to match with the RdbPredicates.
* @return Returns the RdbPredicates that match the specified field.
*/
equalTo(field: string, value: ValueType): RdbPredicates;
/**
* Configures the RdbPredicates to match the field whose data type is ValueType and value is unequal to
* a specified value.
*
* This method is similar to != of the SQL statement.
*
* @param field Indicates the column name in the database table.
* @param value Indicates the value to match with the RdbPredicates.
* @return Returns the RdbPredicates that match the specified field.
*/
notEqualTo(field: string, value: ValueType): RdbPredicates;
/**
* Adds a left parenthesis to the RdbPredicates.
*
* This method is similar to ( of the SQL statement and needs to be used together
* with endWrap().
*
* @return Returns the RdbPredicates with the left parenthesis.
*/
beginWrap(): RdbPredicates;
/**
* Adds a right parenthesis to the RdbPredicates.
*
* This method is similar to ) of the SQL statement and needs to be used together
* with beginWrap().
*
* @return Returns the RdbPredicates with the right parenthesis.
*/
endWrap(): RdbPredicates;
/**
* Adds an or condition to the RdbPredicates.
*
* This method is similar to or of the SQL statement.
*
* @return Returns the RdbPredicates with the or condition.
*/
or(): RdbPredicates;
/**
* Adds an and condition to the RdbPredicates.
*
* This method is similar to and of the SQL statement.
*
* @return Returns the RdbPredicates with the and condition.
*/
and(): RdbPredicates;
/**
* Configures the RdbPredicates to match the field whose data type is string and value
* contains a specified value.
*
* This method is similar to contains of the SQL statement.
*
* @param field Indicates the column name in the database table.
* @param value Indicates the value to match with the RdbPredicates.
* @return Returns the RdbPredicates that match the specified field.
*/
contains(field: string, value: string): RdbPredicates;
/**
* Configures the RdbPredicates to match the field whose data type is string and value starts
* with a specified string.
*
* This method is similar to value% of the SQL statement.
*
* @param field Indicates the column name in the database table.
* @param value Indicates the value to match with the RdbPredicates.
* @return Returns the RdbPredicates that match the specified field.
*/
beginsWith(field: string, value: string): RdbPredicates;
/**
* Configures the RdbPredicates to match the field whose data type is string and value
* ends with a specified string.
*
* This method is similar to %value of the SQL statement.
*
* @param field Indicates the column name in the database table.
* @param value Indicates the value to match with the RdbPredicates.
* @return Returns the RdbPredicates that match the specified field.
*/
endsWith(field: string, value: string): RdbPredicates;
/**
* Configures the RdbPredicates to match the fields whose value is null.
*
* This method is similar to is null of the SQL statement.
*
* @param field Indicates the column name in the database table.
* @return Returns the RdbPredicates that match the specified field.
*/
isNull(field: string): RdbPredicates;
/**
* Configures the RdbPredicates to match the specified fields whose value is not null.
*
* This method is similar to is not null of the SQL statement.
*
* @param field Indicates the column name in the database table.
* @return Returns the RdbPredicates that match the specified field.
*/
isNotNull(field: string): RdbPredicates;
/**
* Configures the RdbPredicates to match the fields whose data type is string and value is
* similar to a specified string.
*
* This method is similar to like of the SQL statement.
*
* @param field Indicates the column name in the database table.
* @param value Indicates the value to match with the RdbPredicates. The percent sign (%) in the value
* is a wildcard (like * in a regular expression).
* @return Returns the RdbPredicates that match the specified field.
*/
like(field: string, value: string): RdbPredicates;
/**
* Configures RdbPredicates to match the specified field whose data type is string and the value contains
* a wildcard.
*
* Different from like, the input parameters of this method are case-sensitive.
*
* @param field Indicates the column name in the database table.
* @param value Indicates the value to match with RdbPredicates.
* @return Returns the SQL statement with the specified RdbPredicates.
*
*/
glob(field: string, value: string): RdbPredicates;
/**
* Restricts the value of the field to the range between low value and high value.
*
* @param field Indicates the column name.
* @param low Indicates the minimum value.
* @param high Indicates the maximum value.
* @return Returns the SQL query statement with the specified RdbPredicates.
*/
between(field: string, low: ValueType, high: ValueType): RdbPredicates;
/**
* Configures RdbPredicates to match the specified field whose data type is int and value is
* out of a given range.
*
* @param field Indicates the column name in the database table.
* @param low Indicates the minimum value to match with DataAbilityPredicates}.
* @param high Indicates the maximum value to match with DataAbilityPredicates}.
* @return Returns the SQL query statement with the specified RdbPredicates.
*
*/
notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates;
/**
* Restricts the value of the field to be greater than the specified value.
*
* @param field Indicates the column name.
* @param value Indicates the String field.
* @return Returns the SQL query statement with the specified RdbPredicates.
*/
greaterThan(field: string, value: ValueType): RdbPredicates;
/**
* Restricts the value of the field to be smaller than the specified value.
*
* @param field Indicates the column name.
* @param value Indicates the String field.
* @return Returns the SQL query statement with the specified RdbPredicates.
*/
lessThan(field: string, value: ValueType): RdbPredicates;
/**
* Restricts the value of the field to be greater than or equal to the specified value.
*
* @param field Indicates the column name.
* @param value Indicates the String field.
* @return Returns the SQL query statement with the specified RdbPredicates.
*/
greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates;
/**
* Restricts the value of the field to be smaller than or equal to the specified value.
*
* @param field Indicates the column name.
* @param value Indicates the String field.
* @return Returns the SQL query statement with the specified RdbPredicates.
*/
lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates;
/**
* Restricts the ascending order of the return list. When there are several orders,
* the one close to the head has the highest priority.
*
* @param field Indicates the column name for sorting the return list.
* @return Returns the SQL query statement with the specified RdbPredicates.
*/
orderByAsc(field: string): RdbPredicates;
/**
* Restricts the descending order of the return list. When there are several orders,
* the one close to the head has the highest priority.
*
* @param field Indicates the column name for sorting the return list.
* @return Returns the SQL query statement with the specified RdbPredicates.
*/
orderByDesc(field: string): RdbPredicates;
/**
* Restricts each row of the query result to be unique.
*
* @return Returns the SQL query statement with the specified RdbPredicates.
*/
distinct(): RdbPredicates;
/**
* Restricts the max number of return records.
*
* @param value Indicates the max length of the return list.
* @return Returns the SQL query statement with the specified RdbPredicates.
* @throws IllegalPredicateException Throws this exception if RdbPredicates are added to a wrong position.
*/
limitAs(value: number): RdbPredicates;
/**
* Configures RdbPredicates to specify the start position of the returned result.
*
* Use this method together with limit(int).
*
* @param rowOffset Indicates the start position of the returned result. The value is a positive integer.
* @return Returns the SQL query statement with the specified AbsPredicates.
*
*/
offsetAs(rowOffset: number): RdbPredicates;
/**
* Configures RdbPredicates to group query results by specified columns.
*
* @param fields Indicates the specified columns by which query results are grouped.
* @return Returns the RdbPredicates with the specified columns by which query results are grouped.
*
*/
groupBy(fields: Array<string>): RdbPredicates;
/**
* Configures RdbPredicates to specify the index column.
*
* Before using this method, you need to create an index column.
*
* @param indexName Indicates the name of the index column.
* @return Returns RdbPredicates with the specified index column.
*
*/
indexedBy(field: string): RdbPredicates;
/**
* Configures RdbPredicates to match the specified field whose data type is ValueType array and values
* are within a given range.
*
* @param field Indicates the column name in the database table.
* @param values Indicates the values to match with RdbPredicates.
* @return Returns RdbPredicates that matches the specified field.
*
*/
in(field: string, value: Array<ValueType>): RdbPredicates;
/**
* Configures RdbPredicates to match the specified field whose data type is ValueType array and values
* are out of a given range.
*
* @param field Indicates the column name in the database table.
* @param values Indicates the values to match with RdbPredicates.
* @return Returns RdbPredicates that matches the specified field.
*/
notIn(field: string, value: Array<ValueType>): RdbPredicates;
}
}
export default rdb;