MOBILE-2842 core: New SQLiteDB methods
parent
fb29050627
commit
db46635262
|
@ -407,6 +407,16 @@ export class SQLiteDB {
|
|||
return this.execute(`DELETE FROM ${table} ${select}`, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Drop a table if it exists.
|
||||
*
|
||||
* @param {string} name The table name.
|
||||
* @return {Promise<any>} Promise resolved when success.
|
||||
*/
|
||||
dropTable(name: string): Promise<any> {
|
||||
return this.execute(`DROP TABLE IF EXISTS ${name}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute a SQL query.
|
||||
* IMPORTANT: Use this function only if you cannot use any of the other functions in this API. Please take into account that
|
||||
|
@ -783,6 +793,23 @@ export class SQLiteDB {
|
|||
return this.executeBatch(statements);
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert multiple records into database from another table.
|
||||
*
|
||||
* @param {string} table The database table to be inserted into.
|
||||
* @param {string} source The database table to get the records from.
|
||||
* @param {object} [conditions] The conditions to build the where clause. Must not contain numeric indexes.
|
||||
* @param {string} [fields='*'] A comma separated list of fields to return.
|
||||
* @return {Promise<any>} Promise resolved when done.
|
||||
*/
|
||||
insertRecordsFrom(table: string, source: string, conditions?: object, fields: string = '*'): Promise<any> {
|
||||
const selectAndParams = this.whereClause(conditions);
|
||||
const select = selectAndParams[0] ? 'WHERE ' + selectAndParams[0] : '';
|
||||
const params = selectAndParams[1];
|
||||
|
||||
return this.execute(`INSERT INTO ${table} SELECT ${fields} FROM ${source} ${select}`, params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that limit params are numeric and positive integers, to be passed to the database.
|
||||
* We explicitly treat null, '' and -1 as 0 in order to provide compatibility with how limit
|
||||
|
@ -875,6 +902,16 @@ export class SQLiteDB {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test whether a table exists..
|
||||
*
|
||||
* @param {string} name The table name.
|
||||
* @return {Promise<void>} Promise resolved if exists, rejected otherwise.
|
||||
*/
|
||||
tableExists(name: string): Promise<void> {
|
||||
return this.recordExists('sqlite_master', {type: 'table', tbl_name: name});
|
||||
}
|
||||
|
||||
/**
|
||||
* Update one or more records in a table.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue