On 07/06/2016 10:52 PM, Jeff Archer wrote:
On Wed, Jul 6, 2016 at 10:46 AM, Dan Kennedy <danielk1...@gmail.com> wrote:
On 07/06/2016 09:09 PM, Jeff Archer wrote:
Hi All,
I am a long time SQLite user but have generally used it from C++ in the
past. In this project however, I am attempting to make a JDBC wrapper and
use from Android a newer version of SQLite (3.12.2) than that provided by
Android 4.2.2 (3.7.11).
Group 8 however can only do 26 successful inserts and on the 27th
sqlite3_step() is returning SQLITE_CANTOPEN (14).
SQLite is failing to create a temporary file, as there is nowhere
convenient to do this on Android. The usual fix is to build SQLite to store
temp files in memory:
-DSQLITE_TEMP_STORE=3
https://www.sqlite.org/compile.html#temp_store
Or execute
"PRAGMA temp_store = memory" after opening your db connection.
Dan, many thanks. This does indeed solve my problem.
Just for my information, what is the purpose of this temporary file? I see
that -journal file is always stored to disk.
It's a statement journal:
https://www.sqlite.org/tempfiles.html#stmtjrnl
Recent changes mean that the first 64KiB of a statement journal are
always stored in main-memory, and the temp file only created after the
file grows larger than 64KiB. Which is probably why you did not see the
problem immediately.
Dan.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users