Great stuff and all but can I ask why SQL folks make it hard for an application to get simple read access to a SQLite database? Especially, I have an application which wants to use the Firefox places-bookmarks-etc db file. I can copy the file to a different directory and then run a query on it but can't open it in place for reading, for just reading. WTF is the problem with that? Is reading a file a way to corrupt it?
Try using pragma read_uncommited=1;
For my stuff I use the sqlite3_backup api to "copy" the database into another, or in memory - then read from memory normally.