sqlite.h


Códigos y mensajes de error

int sqlite3_errcode(sqlite3 *db);
int sqlite3_extended_errcode(sqlite3 *db);
const char *sqlite3_errmsg(sqlite3*);
const void *sqlite3_errmsg16(sqlite3*);

La función sqlite3_errcode() retorna el código resultado numérico o código extendido para la llamada fallida más reciente a una función del API asociada con la conexión de base de datos. Si una llamada previa a una función del API ha fallado pero la más reciente ha tenido éxito, el valor de retorno de sqlite3_errcode() es indefinido. La función sqlite3_extended_errcode() es la misma excepto que siempre devuelve el código de resultado extendido aún si estos códigos fueron deshabilitados.

Las funciones sqlite3_errmsg() y sqlite3_errmsg16() devuelven un texto en inglés que describe el error, en codificación UTF-8 o UTF-16, respectivamente. La memoria para contener la cadena de mensaje de error se maneja internamente. La aplicación no necesita preocuparse sobre la liberación del resultado. Sin embargo, la cadena de error será sobrescrita o liberada por subsiguientes llamadas a otras funciones SQLite.

Cuando se usa el modo de hilo serie, puede darse el caso de que un segundo error ocurra en un hilo diferente en el intervalo de tiempo entre el primer error y la llamada a estas funciones. Cuando esto ocurre, el segundo error puede ser el devuelto ya que estas funciones siempre informan sobre el error más reciente. Para evitar esto, cada hilo puede obtener un uso exclusivo soble la conexión de base de datos D invocando a sqlite3_mutex_enter(sqlite3_db_mutex(D)) Antes de empezar a usar D e invocar a sqlite3_mutex_leave(sqlite3_db_mutex(D)) después de que todas las llamadas a funciones listadas aquí se hayan completado.

Si una función falla con SQLITE_MISUSE, significa que la función fue invocada incorrectamente por la aplicación. En ese caso, el código y mensaje de error puede ser asignado o no.