import "mozIStorageService.idl";
Public Member Functions | |
| mozIStorageConnection | openSpecialDatabase (in string aStorageKey) |
| Get a connection to a named special database storage. | |
| mozIStorageConnection | openDatabase (in nsIFile aDatabaseFile) |
| Open a connection to the specified file. | |
| mozIStorageConnection | openUnsharedDatabase (in nsIFile aDatabaseFile) |
| Open a connection to the specified file that doesn't share a sqlite cache. | |
| nsIFile | backupDatabaseFile (in nsIFile aDBFile, in AString aBackupFileName,[optional] in nsIFile aBackupParentDirectory) |
| Copies the specified database file to the specified parent directory with the specified file name. | |
| mozIStorageConnection mozIStorageService::openSpecialDatabase | ( | in string | aStorageKey | ) |
| aStorageKey | a string key identifying the type of storage requested. Valid values include: "profile", "memory". |
| NS_ERROR_INVALID_ARG | if aStorageKey is invalid. |
| mozIStorageConnection mozIStorageService::openDatabase | ( | in nsIFile | aDatabaseFile | ) |
Consumers should check mozIStorageConnection::connectionReady to ensure that they can use the database. If this value is false, it is strongly recommended that the database be backed up with mozIStorageConnection::backupDB so user data is not lost.
========== DANGER ==========
If you have more than one connection to a file, you MUST use the EXACT SAME NAME for the file each time, including case. The sqlite code uses a simple string compare to see if there is already a connection. Opening a connection to "Foo.sqlite" and "foo.sqlite" will CORRUPT YOUR DATABASE.
The connection object returned by this function is not threadsafe. You must use it only from the thread you created it from.
If your database contains virtual tables (f.e. for full-text indexes), you must open it with openUnsharedDatabase, as those tables are incompatible with a shared cache. If you attempt to use this method to open a database containing virtual tables, it will think the database is corrupted and throw NS_ERROR_FILE_CORRUPTED.
| aDatabaseFile | A nsIFile that represents the database that is to be opened.. |
| mozIStorageConnection mozIStorageService::openUnsharedDatabase | ( | in nsIFile | aDatabaseFile | ) |
Each connection uses its own sqlite cache, which is inefficient, so you should use openDatabase instead of this method unless you need a feature of SQLite that is incompatible with a shared cache, like virtual table and full text indexing support.
Consumers should check mozIStorageConnection::connectionReady to ensure that they can use the database. If this value is false, it is strongly recommended that the database be backed up with mozIStorageConnection::backupDB so user data is not lost.
========== DANGER ==========
If you have more than one connection to a file, you MUST use the EXACT SAME NAME for the file each time, including case. The sqlite code uses a simple string compare to see if there is already a connection. Opening a connection to "Foo.sqlite" and "foo.sqlite" will CORRUPT YOUR DATABASE.
The connection object returned by this function is not threadsafe. You must use it only from the thread you created it from.
| aDatabaseFile | A nsIFile that represents the database that is to be opened.. |
| nsIFile mozIStorageService::backupDatabaseFile | ( | in nsIFile | aDBFile, | |
| in AString | aBackupFileName, | |||
| [optional] in nsIFile | aBackupParentDirectory | |||
| ) |
If the parent directory is not specified, it places the backup in the same directory as the current file. This function ensures that the file being created is unique.
| aDBFile | The database file that will be backed up. | |
| aBackupFileName | The name of the new backup file to create. | |
| [optional] | aBackupParentDirectory The directory you'd like the backup file to be placed. |
1.5.6