There is a (potential) problem with using sqlite3_errmsg():
it might be the case that a second error occurs on a separate thread in between the time of the first error and the call to these interfaces
So if I already have a error code returned by some function, can I get the corresponding error message in some other way?