But I use v2 interface. In particular I called
sqlite3_prepare_v2, not sqlite3_prepare(). So, something
is still wrong?

(remind that I use sqlite 3.5.1 (windows))


 >> Ok, I tried to do reset for my statement
 >> and ... got SQLITE_BUSY too!
 >> I.e. sqlite_reset() (and sqlite_finalize() too) returns SQLITE_BUSY,
 >> althought statement seems to become reset and rollback complete
 >> at last.

>  When sqlite3_step fails, it always returns a generic SQLITE_ERROR
code.
>  A subsequent call to sqlite3_reset or sqlite3_finalize returns the
>  specific error code that sqlite3_step should have returned. The
_reset
>  or _finalize itself succeeds, despite returning an error.

>  It's not clear why it was done this way originally, but now it is
>  maintained for backward compatibility. If you use sqlite3_prepare_v2
>  instead of sqlite3_prepare to prepare your statements, you opt out of
>  this legacy behavior: sqlite3_step would now return an appropriate
error
>  code directly, and sqlite3_reset and _finalize would only return
error
>  codes if they genuinely fail.

>  Igor Tandetnik


Reply via email to