mozIStorageConnection represents a database connection attached to a specific file or to the in-memory data storage. It is the primary interface for interacting with a database, including creating prepared statements, executing SQL, and examining database errors.
[scriptable, uuid(77015f88-bfc2-4669-b1c3-cc19fb07cd4e)]
Constants
Attributes
The current database nsIFile. Null if the database connection refers to an in-memory database.
The last SQLite error as a string (in english, straight from the sqlite library).
lastInsertRowID returns the row ID from the last INSERT operation.
Methods
Begin a new transaction. sqlite default transactions are deferred. If a transaction is active, throws an error.
Commits the current transaction. If no transaction is active, @throws NS_ERROR_STORAGE_NO_TRANSACTION.
Create a new SQLite function
void
createFunction(in string aFunctionName, in long aNumArguments, in mozIStorageFunction aFunction)
Create a mozIStorageStatement for the given SQL expression. The expression may use ? to indicate sequential numbered arguments, or :name and $var to indicate named arguments. @param aSQLStatement The SQL statement to execute @returns a new mozIStorageStatement
Create the table with the given name and schema. If the table already exists, NS_ERROR_FAILURE is thrown. (XXX at some point in the future it will check if the schema is the same as what is specified, but that doesn't happen currently.) @param aTableName the table name to be created, consisting of [A-Za-z0-9_], and beginning with a letter. @param aTableSchema the schema of the table; what would normally go between the parens in a CREATE TABLE statement: e.g., "foo INTEGER, bar STRING". @throws NS_ERROR_FAILURE if the table already exists or could not be created for any other reason.
Execute a SQL expression, expecting no arguments. @param aSQLStatement The SQL statement to execute
Check if the given index exists. @param aIndexName The index to check @returns TRUE if the index exists, FALSE otherwise.
This is used to preload the database cache. It loads pages from the start of the database file until the memory cache (specified by "PRAGMA cache_size=") is full or the entire file is read. The cache MUST be active on the database for this to work. This means that you must have a transaction open on the connection, or have a transaction open on another connection that shares the same pager cache. This cached data will go away when the transaction is closed. This preload operation can dramatically speed up read operations because the data is loaded as one large block. Normally, pages are read in on demand, which can cause many disk seeks.
Rolls back the current transaction. If no transaction is active, @throws NS_ERROR_STORAGE_NO_TRANSACTION.
Compare to: