SQLite version 2.8.13 Enter ".help" for instructions sqlite> update info set version=1; SQL error: attempt to write a readonly database sqlite> update info set version=1 where 0; sqlite>
What am I missing?
Thanks for the explanation of how read-only works though!
On Mar 9, 2004, at 3:02 PM, D. Richard Hipp wrote:
Steve Palmer wrote:
> I was going by the comment at http://www.sqlite.org/c_interface.html which
> says:
>
> "If the file is read-only (due to permission bits or because it is located on
> read-only media like a CD-ROM) then SQLite opens the database for reading
> only."
>
> I don't know how true this is but I assume that since one of the error codes
> is SQLITE_READONLY then it is probably accurate. In which case an extra
> function that returns the state of the read-only flag would be nice.
>
The information in c_interface.html is correct.
Adding a function to return the state of the "read-only flag" is not so simple, though, because there is not a single read-only flag. There is a separate read-only flag for each database.
Whenever you do an sqlite_open() you are really opening at least two database files - the one you named as an argument to sqlite_open() and a separate file used to store TEMP tables. It is quite possible for the main database to be read-only and the TEMP database to be read-write. You can also add additional files using the ATTACH command. Each such file can be either read-only or read-write. You can have up to 12 databases open all at once. Some can be read-only while others are read-write.
If you want to see if a particular table is read-only, try executing SQL like this:
UPDATE table SET rowid=0 WHERE 0;
If you get back an SQLITE_OK that means the table is read-write. If you get back SQLITE_READONLY that means the table is read-only. And because the WHERE clause is always false, nothing in the database will be changed.
-- D. Richard Hipp -- [EMAIL PROTECTED] -- 704.948.4565
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

