> Is the 5th a verbose description of the return code of sqlite3_exec? Considered as an optional out parameter, yes. Technically, it is where the caller will receive a pointer to such an error message, at caller's option. > Should I check the 5th parameter (which is a C# out parameter) all the time or only when the return code is not SQLITE_OK i.e. 0? It need not be checked at all; the int return indicates success or other outcomes. sqlite3_exec() is a convenience function, wrapping a series of other calls, including potential retrieval of text error messages.