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)]
interface mozIStorageConnection : nsISupports
Constants
Begins a new transaction with the given type.
const
PRInt32
TRANSACTION_DEFERRED = 0
const
PRInt32
TRANSACTION_IMMEDIATE = 1
const
PRInt32
TRANSACTION_EXCLUSIVE = 2
Attributes
whether the database is open or not
readonly attribute
boolean
connectionReady
The current database nsIFile. Null if the database connection refers to an in-memory database.
readonly attribute
nsIFile
databaseFile
The last error SQLite error code.
readonly attribute
long
lastError
The last SQLite error as a string (in english, straight from the sqlite library).
readonly attribute
AUTF8String
lastErrorString
lastInsertRowID returns the row ID from the last INSERT operation.
readonly attribute
long long
lastInsertRowID
Returns true if a transaction is active on this connection.
readonly attribute
boolean
transactionInProgress
Methods
Begin a new transaction. sqlite default transactions are deferred. If a transaction is active, throws an error.
void
beginTransaction()
void
beginTransactionAs(in PRInt32 transactionType)
Commits the current transaction. If no transaction is active, @throws NS_ERROR_STORAGE_NO_TRANSACTION.
void
commitTransaction()
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
mozIStorageStatement
createStatement(in AUTF8String aSQLStatement)
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.
void
createTable(in string aTableName, in string aTableSchema)
Execute a SQL expression, expecting no arguments. @param aSQLStatement The SQL statement to execute
void
executeSimpleSQL(in AUTF8String aSQLStatement)
Check if the given index exists. @param aIndexName The index to check @returns TRUE if the index exists, FALSE otherwise.
boolean
indexExists(in AUTF8String aIndexName)
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.
void
preload()
Rolls back the current transaction. If no transaction is active, @throws NS_ERROR_STORAGE_NO_TRANSACTION.
void
rollbackTransaction()
Check if the given table exists. @param aTableName The table to check @returns TRUE if table exists, FALSE otherwise.
boolean
tableExists(in AUTF8String aTableName)
Compare to: