Hi,
Thank you. Right, do not use WAL over a network. I suspected that but was not sure.
No blobs. All fields are either text or int. There are several FTS4 virtual tables to handle "keyword" type searches using Match. Previously, I "rolled my own" word search table. I didn't begin to see the errors until the virtual tables were introduced in 2015, and then, only sporadically. I have not implemented FTS5 as it is not supported by PureBasic when SQLite is embedded.
Very aware of the overhead of VACUUM. Can take a long time. Not automatic in my system. Users can select a "Database reindex" option that both vacuums and deletes then re-creates all the indexes and the FTS4 tables. (The data in those tables is duplicated from the main table.) Interestingly, after rebuilding a database via export > create new file > import, VACUUM still takes a long time.
I have never had a user report a SQLITE_BUSY error.
SQLite open database question
Re: SQLite open database question
Does your code check for BUSY?
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum