class DatabaseSync
This class represents a single connection to a SQLite database. All APIs exposed by this class execute synchronously.
Constructors #
#DatabaseSync(location: string,options?: DatabaseSyncOptions,)
Constructs a new DatabaseSync
instance.
Methods #
#applyChangeset(changeset: Uint8Array,options?: ApplyChangesetOptions,): boolean
An exception is thrown if the database is not
open. This method is a wrapper around
sqlite3changeset_apply()
.
const sourceDb = new DatabaseSync(':memory:');
const targetDb = new DatabaseSync(':memory:');
sourceDb.exec('CREATE TABLE data(key INTEGER PRIMARY KEY, value TEXT)');
targetDb.exec('CREATE TABLE data(key INTEGER PRIMARY KEY, value TEXT)');
const session = sourceDb.createSession();
const insert = sourceDb.prepare('INSERT INTO data (key, value) VALUES (?, ?)');
insert.run(1, 'hello');
insert.run(2, 'world');
const changeset = session.changeset();
targetDb.applyChangeset(changeset);
// Now that the changeset has been applied, targetDb contains the same data as sourceDb.
Closes the database connection. An exception is thrown if the database is not
open. This method is a wrapper around sqlite3_close_v2()
.
#createSession(options?: CreateSessionOptions): Session
Creates and attaches a session to the database. This method is a wrapper around
sqlite3session_create()
and
sqlite3session_attach()
.
#enableLoadExtension(allow: boolean): void
Enables or disables the loadExtension
SQL function, and the loadExtension()
method. When allowExtension
is false
when constructing, you cannot enable
loading extensions for security reasons.
This method allows one or more SQL statements to be executed without returning
any results. This method is useful when executing SQL statements read from a
file. This method is a wrapper around sqlite3_exec()
.
This method is used to create SQLite user-defined functions. This method is a
wrapper around sqlite3_create_function_v2()
.
#function(name: string,func: (...args: SupportedValueType[]) => SupportedValueType,): void
#loadExtension(path: string): void
Loads a shared library into the database connection. This method is a wrapper
around sqlite3_load_extension()
. It is required to enable the
allowExtension
option when constructing the DatabaseSync
instance.
Opens the database specified in the location
argument of the DatabaseSync
constructor. This method should only be used when the database is not opened via
the constructor. An exception is thrown if the database is already open.
#prepare(sql: string): StatementSync
Compiles a SQL statement into a prepared statement. This method is a wrapper
around sqlite3_prepare_v2()
.