SQLite Forum

sqlite3_prepare()
Login
> My reason for asking question 2 above is that ?v3() is enumerated before ?v2():

And `sqlite3_prepare_v2()` is enumerated before `sqlite3_prepare16_v3()`. I see no reason to ascribe an EOL differential based on either observation.

> With the "v2" interface, any of the other result codes or extended result codes might be returned as well.

One thing about technical documentation in general: **Context is key.** The quote you cherry-picked from https://sqlite.org/c3ref/step.html actually states, in full:

> In the legacy interface, the return value will be either SQLITE_BUSY, SQLITE_DONE, SQLITE_ROW, SQLITE_ERROR, or SQLITE_MISUSE. With the "v2" interface, any of the other result codes or extended result codes might be returned as well.

which clearly contrasts the legacy interface with "v2", rather than v2" with "v3". (Though I guess a case could be made for adding "v3" to the latter statement for clarity.)