Came across (what I think is) an oddity:
Setting up a prepared statement. Mistyped one of the column names. The error is not reported until the statement is executed. I would have thought such a problem would be detected at the "prepare". This might simply be the way sqlite works.
Something to look for when what you expect to be inserted does not get inserted.
Hope this helps someone.