NAME
sqlite3_errcode,
sqlite3_extended_errcode,
sqlite3_errmsg,
sqlite3_errmsg16,
sqlite3_errstr —
Error Codes And
Messages
SYNOPSIS
int
sqlite3_errcode(
sqlite3 *db);
int
sqlite3_extended_errcode(
sqlite3 *db);
const char *
sqlite3_errmsg(
sqlite3*);
const void *
sqlite3_errmsg16(
sqlite3*);
const char *
sqlite3_errstr(
int);
DESCRIPTION
If the most recent sqlite3_* API call associated with database connection D
failed, then the sqlite3_errcode(D) interface returns the numeric result code
or extended result code for that API call. If the most recent API call was
successful, then the return value from sqlite3_errcode() is undefined. The
sqlite3_extended_errcode() interface is the same except that it always returns
the extended result code even when extended result codes are disabled.
The sqlite3_errmsg() and sqlite3_errmsg16() return English-language text that
describes the error, as either UTF-8 or UTF-16 respectively. Memory to hold
the error message string is managed internally. The application does not need
to worry about freeing the result. However, the error string might be
overwritten or deallocated by subsequent calls to other SQLite interface
functions.
The sqlite3_errstr() interface returns the English-language text that describes
the result code, as UTF-8. Memory to hold the error message string is managed
internally and must not be freed by the application .
When the serialized threading mode is in use, 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. When that happens, the second error will be
reported since these interfaces always report the most recent result. To avoid
this, each thread can obtain exclusive use of the database connection D by
invoking sqlite3_mutex_enter(sqlite3_db_mutex(D)) before beginning to use D
and invoking sqlite3_mutex_leave(sqlite3_db_mutex(D)) after all calls to the
interfaces listed here are completed.
If an interface fails with SQLITE_MISUSE, that means the interface was invoked
incorrectly by the application. In that case, the error code and message may
or may not be set.
SEE ALSO
sqlite3(3),
sqlite3_db_mutex(3),
sqlite3_mutex_alloc(3)