Troubleshooting SQLite Result Codes from Error 16 to 20


SQL return code 16 SQLITE_EMPTY
The SQLITE_EMPTY result code is not currently used.
SQL return code 17 SQLITE_SCHEMA
The SQLITE_SCHEMA result code indicates that the database schema has changed. This result code can be returned from sqlite3_step() for a prepared statement that was generated using sqlite3_prepare() or sqlite3_prepare16(). If the database schema was changed by some other process in between the time that the statement was prepared and the time the statement was run, this error can result.
If a prepared statement is generated from sqlite3_prepare_v2() then the statement is automatically re-prepared if the schema changes, up to SQLITE_MAX_SCHEMA_RETRY times (default: 50). The sqlite3_step() interface will only return SQLITE_SCHEMA back to the application if the failure persists after these many retries.

SQL return code 18 SQLITE_TOOBIG
The SQLITE_TOOBIG error code indicates that a string or BLOB was too large. The default maximum length of a string or BLOB in SQLite is 1,000,000,000 bytes. This maximum length can be changed at compile-time using the SQLITE_MAX_LENGTH compile-time option, or at run-time using the sqlite3_limit(db,SQLITE_LIMIT_LENGTH,…) interface. The SQLITE_TOOBIG error results when SQLite encounters a string or BLOB that exceeds the compile-time or run-time limit.
The SQLITE_TOOBIG error code can also result when an oversized SQL statement is passed into one of the sqlite3_prepare_v2() interfaces. The maximum length of an SQL statement defaults to a much smaller value of 1,000,000 bytes. The maximum SQL statement length can be set at compile-time using SQLITE_MAX_SQL_LENGTH or at run-time using sqlite3_limit(db,SQLITE_LIMIT_SQL_LENGTH,…).

The SQLITE_CONSTRAINT error code means that an SQL constraint violation occurred while trying to process an SQL statement. Additional information about the failed constraint can be found by consulting the accompanying error message (returned via sqlite3_errmsg() or sqlite3_errmsg16()) or by looking at the extended error code.
SQL return code 20 SQLITE_MISMATCH
The SQLITE_MISMATCH error code indicates a datatype mismatch.
SQLite is normally very forgiving about mismatches between the type of a value and the declared type of the container in which that value is to be stored. For example, SQLite allows the application to store a large BLOB in a column with a declared type of BOOLEAN. But in a few cases, SQLite is strict about types. The SQLITE_MISMATCH error is returned in those few cases when the types do not match.
The rowid of a table must be an integer. Attempt to set the rowid to anything other than an integer (or a NULL which will be automatically converted into the next available integer rowid) results in an SQLITE_MISMATCH error.

Above are the list of SQLite Result Codes or Error Codes and their Description from Error 16 to 20 while performing certain operations against SQLite.

What are SQLite Errors?

SQLite programs have access to several types of common error information when the server returns an error. The SQLite message displayed contains three types of information:

A numeric error code. This number is SQLite and is not portable to other database systems. All result codes are integers. Symbolic names for all result codes are created using “#define” macros.Primary result code symbolic names are of the form “SQLITE_XXXXXX” where XXXXXX is a sequence of uppercase alphabetic characters. Extended result code names are of the form “SQLITE_XXXXXX_YYYYYYY” where the XXXXXX part is the corresponding primary result code and the YYYYYYY is an extension that further classifies the result code. The names and numeric values for existing result codes are fixed and unchanging. However, new result codes, and especially new extended result codes, might appear in future releases of SQLite.

Hope this was helpful.

SQLServerF1 Team
Information about SQLite Result Codes or Error Codes and Error Messages or Warnings on Windows, Linux Operating Systems.


Leave a Reply

Your email address will not be published. Required fields are marked *