1394 lines
64 KiB
HTML
1394 lines
64 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
<link href="sqlite.css" rel="stylesheet">
|
|
<title>Result and Error Codes</title>
|
|
<!-- path= -->
|
|
</head>
|
|
<body>
|
|
<div class=nosearch>
|
|
<a href="index.html">
|
|
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite" border="0">
|
|
</a>
|
|
<div><!-- IE hack to prevent disappearing logo --></div>
|
|
<div class="tagline desktoponly">
|
|
Small. Fast. Reliable.<br>Choose any three.
|
|
</div>
|
|
<div class="menu mainmenu">
|
|
<ul>
|
|
<li><a href="index.html">Home</a>
|
|
<li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a>
|
|
<li class='wideonly'><a href='about.html'>About</a>
|
|
<li class='desktoponly'><a href="docs.html">Documentation</a>
|
|
<li class='desktoponly'><a href="download.html">Download</a>
|
|
<li class='wideonly'><a href='copyright.html'>License</a>
|
|
<li class='desktoponly'><a href="support.html">Support</a>
|
|
<li class='desktoponly'><a href="prosupport.html">Purchase</a>
|
|
<li class='search' id='search_menubutton'>
|
|
<a href="javascript:void(0)" onclick='toggle_search()'>Search</a>
|
|
</ul>
|
|
</div>
|
|
<div class="menu submenu" id="submenu">
|
|
<ul>
|
|
<li><a href='about.html'>About</a>
|
|
<li><a href='docs.html'>Documentation</a>
|
|
<li><a href='download.html'>Download</a>
|
|
<li><a href='support.html'>Support</a>
|
|
<li><a href='prosupport.html'>Purchase</a>
|
|
</ul>
|
|
</div>
|
|
<div class="searchmenu" id="searchmenu">
|
|
<form method="GET" action="search">
|
|
<select name="s" id="searchtype">
|
|
<option value="d">Search Documentation</option>
|
|
<option value="c">Search Changelog</option>
|
|
</select>
|
|
<input type="text" name="q" id="searchbox" value="">
|
|
<input type="submit" value="Go">
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
function toggle_div(nm) {
|
|
var w = document.getElementById(nm);
|
|
if( w.style.display=="block" ){
|
|
w.style.display = "none";
|
|
}else{
|
|
w.style.display = "block";
|
|
}
|
|
}
|
|
function toggle_search() {
|
|
var w = document.getElementById("searchmenu");
|
|
if( w.style.display=="block" ){
|
|
w.style.display = "none";
|
|
} else {
|
|
w.style.display = "block";
|
|
setTimeout(function(){
|
|
document.getElementById("searchbox").focus()
|
|
}, 30);
|
|
}
|
|
}
|
|
function div_off(nm){document.getElementById(nm).style.display="none";}
|
|
window.onbeforeunload = function(e){div_off("submenu");}
|
|
/* Disable the Search feature if we are not operating from CGI, since */
|
|
/* Search is accomplished using CGI and will not work without it. */
|
|
if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){
|
|
document.getElementById("search_menubutton").style.display = "none";
|
|
}
|
|
/* Used by the Hide/Show button beside syntax diagrams, to toggle the */
|
|
function hideorshow(btn,obj){
|
|
var x = document.getElementById(obj);
|
|
var b = document.getElementById(btn);
|
|
if( x.style.display!='none' ){
|
|
x.style.display = 'none';
|
|
b.innerHTML='show';
|
|
}else{
|
|
x.style.display = '';
|
|
b.innerHTML='hide';
|
|
}
|
|
return false;
|
|
}
|
|
</script>
|
|
</div>
|
|
<div class=fancy>
|
|
<div class=nosearch>
|
|
<div class="fancy_title">
|
|
Result and Error Codes
|
|
</div>
|
|
<div class="fancy_toc">
|
|
<a onclick="toggle_toc()">
|
|
<span class="fancy_toc_mark" id="toc_mk">►</span>
|
|
Table Of Contents
|
|
</a>
|
|
<div id="toc_sub"><div class="fancy-toc1"><a href="#result_codes_versus_error_codes">1. Result Codes versus Error Codes</a></div>
|
|
<div class="fancy-toc1"><a href="#primary_result_codes_versus_extended_result_codes">2. Primary Result Codes versus Extended Result Codes</a></div>
|
|
<div class="fancy-toc1"><a href="#definitions">3. Definitions</a></div>
|
|
<div class="fancy-toc1"><a href="#primary_result_code_list">4. Primary Result Code List</a></div>
|
|
<div class="fancy-toc1"><a href="#extended_result_code_list">5. Extended Result Code List</a></div>
|
|
<div class="fancy-toc1"><a href="#result_code_meanings">6. Result Code Meanings</a></div>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
function toggle_toc(){
|
|
var sub = document.getElementById("toc_sub")
|
|
var mk = document.getElementById("toc_mk")
|
|
if( sub.style.display!="block" ){
|
|
sub.style.display = "block";
|
|
mk.innerHTML = "▼";
|
|
} else {
|
|
sub.style.display = "none";
|
|
mk.innerHTML = "►";
|
|
}
|
|
}
|
|
</script>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<h2 style="margin-left:1.0em" notoc="1" id="overview"> Overview</h2>
|
|
|
|
<p>
|
|
Many of the routines in the SQLite <a href="c3ref/intro.html">C-language Interface</a> return
|
|
numeric result codes indicating either success or failure, and
|
|
in the event of a failure, providing some idea of the cause of
|
|
the failure. This document strives to explain what each
|
|
of those numeric result codes means.
|
|
|
|
</p><h1 id="result_codes_versus_error_codes"><span>1. </span>Result Codes versus Error Codes</h1>
|
|
|
|
<p>
|
|
"Error codes" are a subset of "result codes" that indicate that
|
|
something has gone wrong. There are only a few non-error result
|
|
codes: <a href="rescode.html#ok">SQLITE_OK</a>, <a href="rescode.html#row">SQLITE_ROW</a>, and <a href="rescode.html#done">SQLITE_DONE</a>. The term
|
|
"error code" means any result code other than these three.
|
|
|
|
<a name="pve"></a>
|
|
|
|
</p><h1 id="primary_result_codes_versus_extended_result_codes"><span>2. </span>Primary Result Codes versus Extended Result Codes</h1>
|
|
|
|
<p>
|
|
Result codes are signed 32-bit integers.
|
|
The least significant 8 bits of the result code define a broad category
|
|
and are called the "primary result code". More significant bits provide
|
|
more detailed information about the error and are called the
|
|
"extended result code"
|
|
|
|
</p><p>
|
|
Note that the primary result code is always a part of the extended
|
|
result code. Given a full 32-bit extended result code, the application
|
|
can always find the corresponding primary result code merely by extracting
|
|
the least significant 8 bits of the extended result code.
|
|
|
|
</p><p>
|
|
All extended result codes are also error codes. Hence the terms
|
|
"extended result code" and "extended error code" are interchangeable.
|
|
|
|
</p><p>
|
|
For historic compatibility, the C-language interfaces return
|
|
primary result codes by default.
|
|
The extended result code for the most recent error can be
|
|
retrieved using the <a href="c3ref/errcode.html">sqlite3_extended_errcode()</a> interface.
|
|
The <a href="c3ref/extended_result_codes.html">sqlite3_extended_result_codes()</a> interface can be used to put
|
|
a <a href="c3ref/sqlite3.html">database connection</a> into a mode where it returns the
|
|
extended result codes instead of the primary result codes.
|
|
|
|
</p><h1 id="definitions"><span>3. </span>Definitions</h1>
|
|
|
|
<p>
|
|
All result codes are integers.
|
|
Symbolic names for all result codes are created using
|
|
"#define" macros in the sqlite3.h header file.
|
|
There are separate sections in the sqlite3.h header file for
|
|
the <a href="c3ref/c_abort.html">result code definitions</a> and the <a href="c3ref/c_abort_rollback.html">extended result code definitions</a>.
|
|
|
|
</p><p>
|
|
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.
|
|
|
|
</p><p>
|
|
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.
|
|
|
|
|
|
</p><h1 id="primary_result_code_list"><span>4. </span>Primary Result Code List</h1>
|
|
<p>The 31 result codes are
|
|
<a href="c3ref/c_abort.html">defined in sqlite3.h</a> and are listed in
|
|
alphabetical order below:
|
|
<div class='columns' style='columns: 16em auto;'>
|
|
<ul style='padding-top:0;'>
|
|
<li><a href='rescode.html#abort'>SQLITE_ABORT (4)</a></li>
|
|
<li><a href='rescode.html#auth'>SQLITE_AUTH (23)</a></li>
|
|
<li><a href='rescode.html#busy'>SQLITE_BUSY (5)</a></li>
|
|
<li><a href='rescode.html#cantopen'>SQLITE_CANTOPEN (14)</a></li>
|
|
<li><a href='rescode.html#constraint'>SQLITE_CONSTRAINT (19)</a></li>
|
|
<li><a href='rescode.html#corrupt'>SQLITE_CORRUPT (11)</a></li>
|
|
<li><a href='rescode.html#done'>SQLITE_DONE (101)</a></li>
|
|
<li><a href='rescode.html#empty'>SQLITE_EMPTY (16)</a></li>
|
|
<li><a href='rescode.html#error'>SQLITE_ERROR (1)</a></li>
|
|
<li><a href='rescode.html#format'>SQLITE_FORMAT (24)</a></li>
|
|
<li><a href='rescode.html#full'>SQLITE_FULL (13)</a></li>
|
|
<li><a href='rescode.html#internal'>SQLITE_INTERNAL (2)</a></li>
|
|
<li><a href='rescode.html#interrupt'>SQLITE_INTERRUPT (9)</a></li>
|
|
<li><a href='rescode.html#ioerr'>SQLITE_IOERR (10)</a></li>
|
|
<li><a href='rescode.html#locked'>SQLITE_LOCKED (6)</a></li>
|
|
<li><a href='rescode.html#mismatch'>SQLITE_MISMATCH (20)</a></li>
|
|
<li><a href='rescode.html#misuse'>SQLITE_MISUSE (21)</a></li>
|
|
<li><a href='rescode.html#nolfs'>SQLITE_NOLFS (22)</a></li>
|
|
<li><a href='rescode.html#nomem'>SQLITE_NOMEM (7)</a></li>
|
|
<li><a href='rescode.html#notadb'>SQLITE_NOTADB (26)</a></li>
|
|
<li><a href='rescode.html#notfound'>SQLITE_NOTFOUND (12)</a></li>
|
|
<li><a href='rescode.html#notice'>SQLITE_NOTICE (27)</a></li>
|
|
<li><a href='rescode.html#ok'>SQLITE_OK (0)</a></li>
|
|
<li><a href='rescode.html#perm'>SQLITE_PERM (3)</a></li>
|
|
<li><a href='rescode.html#protocol'>SQLITE_PROTOCOL (15)</a></li>
|
|
<li><a href='rescode.html#range'>SQLITE_RANGE (25)</a></li>
|
|
<li><a href='rescode.html#readonly'>SQLITE_READONLY (8)</a></li>
|
|
<li><a href='rescode.html#row'>SQLITE_ROW (100)</a></li>
|
|
<li><a href='rescode.html#schema'>SQLITE_SCHEMA (17)</a></li>
|
|
<li><a href='rescode.html#toobig'>SQLITE_TOOBIG (18)</a></li>
|
|
<li><a href='rescode.html#warning'>SQLITE_WARNING (28)</a></li>
|
|
</ul>
|
|
</div>
|
|
<a name="extrc"></a>
|
|
|
|
</p><h1 id="extended_result_code_list"><span>5. </span>Extended Result Code List</h1>
|
|
<p>The 61 extended result codes
|
|
are <a href="c3ref/c_abort_rollback.html">defined in sqlite3.h</a> and are
|
|
listed in alphabetical order below:
|
|
<div class='columns' style='columns: 22em auto;'>
|
|
<ul style='padding-top:0;'>
|
|
<li><a href='rescode.html#abort_rollback'>SQLITE_ABORT_ROLLBACK (516)</a></li>
|
|
<li><a href='rescode.html#busy_recovery'>SQLITE_BUSY_RECOVERY (261)</a></li>
|
|
<li><a href='rescode.html#busy_snapshot'>SQLITE_BUSY_SNAPSHOT (517)</a></li>
|
|
<li><a href='rescode.html#cantopen_convpath'>SQLITE_CANTOPEN_CONVPATH (1038)</a></li>
|
|
<li><a href='rescode.html#cantopen_dirtywal'>SQLITE_CANTOPEN_DIRTYWAL (1294)</a></li>
|
|
<li><a href='rescode.html#cantopen_fullpath'>SQLITE_CANTOPEN_FULLPATH (782)</a></li>
|
|
<li><a href='rescode.html#cantopen_isdir'>SQLITE_CANTOPEN_ISDIR (526)</a></li>
|
|
<li><a href='rescode.html#cantopen_notempdir'>SQLITE_CANTOPEN_NOTEMPDIR (270)</a></li>
|
|
<li><a href='rescode.html#constraint_check'>SQLITE_CONSTRAINT_CHECK (275)</a></li>
|
|
<li><a href='rescode.html#constraint_commithook'>SQLITE_CONSTRAINT_COMMITHOOK (531)</a></li>
|
|
<li><a href='rescode.html#constraint_foreignkey'>SQLITE_CONSTRAINT_FOREIGNKEY (787)</a></li>
|
|
<li><a href='rescode.html#constraint_function'>SQLITE_CONSTRAINT_FUNCTION (1043)</a></li>
|
|
<li><a href='rescode.html#constraint_notnull'>SQLITE_CONSTRAINT_NOTNULL (1299)</a></li>
|
|
<li><a href='rescode.html#constraint_primarykey'>SQLITE_CONSTRAINT_PRIMARYKEY (1555)</a></li>
|
|
<li><a href='rescode.html#constraint_rowid'>SQLITE_CONSTRAINT_ROWID (2579)</a></li>
|
|
<li><a href='rescode.html#constraint_trigger'>SQLITE_CONSTRAINT_TRIGGER (1811)</a></li>
|
|
<li><a href='rescode.html#constraint_unique'>SQLITE_CONSTRAINT_UNIQUE (2067)</a></li>
|
|
<li><a href='rescode.html#constraint_vtab'>SQLITE_CONSTRAINT_VTAB (2323)</a></li>
|
|
<li><a href='rescode.html#corrupt_sequence'>SQLITE_CORRUPT_SEQUENCE (523)</a></li>
|
|
<li><a href='rescode.html#corrupt_vtab'>SQLITE_CORRUPT_VTAB (267)</a></li>
|
|
<li><a href='rescode.html#error_missing_collseq'>SQLITE_ERROR_MISSING_COLLSEQ (257)</a></li>
|
|
<li><a href='rescode.html#error_retry'>SQLITE_ERROR_RETRY (513)</a></li>
|
|
<li><a href='rescode.html#error_snapshot'>SQLITE_ERROR_SNAPSHOT (769)</a></li>
|
|
<li><a href='rescode.html#ioerr_access'>SQLITE_IOERR_ACCESS (3338)</a></li>
|
|
<li><a href='rescode.html#ioerr_blocked'>SQLITE_IOERR_BLOCKED (2826)</a></li>
|
|
<li><a href='rescode.html#ioerr_checkreservedlock'>SQLITE_IOERR_CHECKRESERVEDLOCK (3594)</a></li>
|
|
<li><a href='rescode.html#ioerr_close'>SQLITE_IOERR_CLOSE (4106)</a></li>
|
|
<li><a href='rescode.html#ioerr_convpath'>SQLITE_IOERR_CONVPATH (6666)</a></li>
|
|
<li><a href='rescode.html#ioerr_delete'>SQLITE_IOERR_DELETE (2570)</a></li>
|
|
<li><a href='rescode.html#ioerr_delete_noent'>SQLITE_IOERR_DELETE_NOENT (5898)</a></li>
|
|
<li><a href='rescode.html#ioerr_dir_close'>SQLITE_IOERR_DIR_CLOSE (4362)</a></li>
|
|
<li><a href='rescode.html#ioerr_dir_fsync'>SQLITE_IOERR_DIR_FSYNC (1290)</a></li>
|
|
<li><a href='rescode.html#ioerr_fstat'>SQLITE_IOERR_FSTAT (1802)</a></li>
|
|
<li><a href='rescode.html#ioerr_fsync'>SQLITE_IOERR_FSYNC (1034)</a></li>
|
|
<li><a href='rescode.html#ioerr_gettemppath'>SQLITE_IOERR_GETTEMPPATH (6410)</a></li>
|
|
<li><a href='rescode.html#ioerr_lock'>SQLITE_IOERR_LOCK (3850)</a></li>
|
|
<li><a href='rescode.html#ioerr_mmap'>SQLITE_IOERR_MMAP (6154)</a></li>
|
|
<li><a href='rescode.html#ioerr_nomem'>SQLITE_IOERR_NOMEM (3082)</a></li>
|
|
<li><a href='rescode.html#ioerr_rdlock'>SQLITE_IOERR_RDLOCK (2314)</a></li>
|
|
<li><a href='rescode.html#ioerr_read'>SQLITE_IOERR_READ (266)</a></li>
|
|
<li><a href='rescode.html#ioerr_seek'>SQLITE_IOERR_SEEK (5642)</a></li>
|
|
<li><a href='rescode.html#ioerr_shmlock'>SQLITE_IOERR_SHMLOCK (5130)</a></li>
|
|
<li><a href='rescode.html#ioerr_shmmap'>SQLITE_IOERR_SHMMAP (5386)</a></li>
|
|
<li><a href='rescode.html#ioerr_shmopen'>SQLITE_IOERR_SHMOPEN (4618)</a></li>
|
|
<li><a href='rescode.html#ioerr_shmsize'>SQLITE_IOERR_SHMSIZE (4874)</a></li>
|
|
<li><a href='rescode.html#ioerr_short_read'>SQLITE_IOERR_SHORT_READ (522)</a></li>
|
|
<li><a href='rescode.html#ioerr_truncate'>SQLITE_IOERR_TRUNCATE (1546)</a></li>
|
|
<li><a href='rescode.html#ioerr_unlock'>SQLITE_IOERR_UNLOCK (2058)</a></li>
|
|
<li><a href='rescode.html#ioerr_write'>SQLITE_IOERR_WRITE (778)</a></li>
|
|
<li><a href='rescode.html#locked_sharedcache'>SQLITE_LOCKED_SHAREDCACHE (262)</a></li>
|
|
<li><a href='rescode.html#locked_vtab'>SQLITE_LOCKED_VTAB (518)</a></li>
|
|
<li><a href='rescode.html#notice_recover_rollback'>SQLITE_NOTICE_RECOVER_ROLLBACK (539)</a></li>
|
|
<li><a href='rescode.html#notice_recover_wal'>SQLITE_NOTICE_RECOVER_WAL (283)</a></li>
|
|
<li><a href='rescode.html#ok_load_permanently'>SQLITE_OK_LOAD_PERMANENTLY (256)</a></li>
|
|
<li><a href='rescode.html#readonly_cantinit'>SQLITE_READONLY_CANTINIT (1288)</a></li>
|
|
<li><a href='rescode.html#readonly_cantlock'>SQLITE_READONLY_CANTLOCK (520)</a></li>
|
|
<li><a href='rescode.html#readonly_dbmoved'>SQLITE_READONLY_DBMOVED (1032)</a></li>
|
|
<li><a href='rescode.html#readonly_directory'>SQLITE_READONLY_DIRECTORY (1544)</a></li>
|
|
<li><a href='rescode.html#readonly_recovery'>SQLITE_READONLY_RECOVERY (264)</a></li>
|
|
<li><a href='rescode.html#readonly_rollback'>SQLITE_READONLY_ROLLBACK (776)</a></li>
|
|
<li><a href='rescode.html#warning_autoindex'>SQLITE_WARNING_AUTOINDEX (284)</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
</p><h1 id="result_code_meanings"><span>6. </span>Result Code Meanings</h1>
|
|
<p>
|
|
The meanings for all 92
|
|
result code values are shown below,
|
|
in numeric order.
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ok"></a>
|
|
<h3>(0) SQLITE_OK</h3>
|
|
<p>
|
|
The SQLITE_OK result code means that the operation was successful and
|
|
that there were no errors. Most other result codes indicate an error.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="error"></a>
|
|
<h3>(1) SQLITE_ERROR</h3>
|
|
<p>
|
|
The SQLITE_ERROR result code is a generic error code that is used when
|
|
no other more specific error code is available.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="internal"></a>
|
|
<h3>(2) SQLITE_INTERNAL</h3>
|
|
<p>
|
|
The SQLITE_INTERNAL result code indicates an internal malfunction.
|
|
In a working version of SQLite, an application should never see this
|
|
result code. If application does encounter this result code, it shows
|
|
that there is a bug in the database engine.
|
|
<p>
|
|
SQLite does not currently generate this result code.
|
|
However, <a href="appfunc.html">application-defined SQL functions</a> or
|
|
<a href="vtab.html">virtual tables</a>, or <a href="vfs.html">VFSes</a>, or other extensions might cause this
|
|
result code to be returned.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="perm"></a>
|
|
<h3>(3) SQLITE_PERM</h3>
|
|
<p>
|
|
The SQLITE_PERM result code indicates that the requested access mode
|
|
for a newly created database could not be provided.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="abort"></a>
|
|
<h3>(4) SQLITE_ABORT</h3>
|
|
<p>
|
|
The SQLITE_ABORT result code indicates that an operation was aborted
|
|
prior to completion, usually be application request.
|
|
See also: <a href="rescode.html#interrupt">SQLITE_INTERRUPT</a>.
|
|
<p>
|
|
If the callback function to <a href="c3ref/exec.html">sqlite3_exec()</a> returns non-zero, then
|
|
sqlite3_exec() will return SQLITE_ABORT.
|
|
<p>
|
|
If a <a href="lang_transaction.html">ROLLBACK</a> operation occurs on the same <a href="c3ref/sqlite3.html">database connection</a> as
|
|
a pending read or write, then the pending read or write may fail with
|
|
an SQLITE_ABORT or <a href="rescode.html#abort_rollback">SQLITE_ABORT_ROLLBACK</a> error.
|
|
<p>
|
|
In addition to being a result code,
|
|
the SQLITE_ABORT value is also used as a <a href="c3ref/c_fail.html">conflict resolution mode</a>
|
|
returned from the <a href="c3ref/vtab_on_conflict.html">sqlite3_vtab_on_conflict()</a> interface.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="busy"></a>
|
|
<h3>(5) SQLITE_BUSY</h3>
|
|
<p>
|
|
The SQLITE_BUSY result code indicates that the database file could not
|
|
be written (or in some cases read) because of concurrent activity by
|
|
some other <a href="c3ref/sqlite3.html">database connection</a>, usually a database connection in a
|
|
separate process.
|
|
<p>
|
|
For example, if process A is in the middle of a large write transaction
|
|
and at the same time process B attempts to start a new write transaction,
|
|
process B will get back an SQLITE_BUSY result because SQLite only supports
|
|
one writer at a time. Process B will need to wait for process A to finish
|
|
its transaction before starting a new transaction. The
|
|
<a href="c3ref/busy_timeout.html">sqlite3_busy_timeout()</a> and <a href="c3ref/busy_handler.html">sqlite3_busy_handler()</a> interfaces and
|
|
the <a href="pragma.html#pragma_busy_timeout">busy_timeout pragma</a> are available to process B to help it deal
|
|
with SQLITE_BUSY errors.
|
|
<p>
|
|
An SQLITE_BUSY error can occur at any point in a transaction: when the
|
|
transaction is first started, during any write or update operations, or
|
|
when the transaction commits.
|
|
To avoid encountering SQLITE_BUSY errors in the middle of a transaction,
|
|
the application can use <a href="lang_transaction.html#immediate">BEGIN IMMEDIATE</a> instead of just <a href="lang_transaction.html">BEGIN</a> to
|
|
start a transaction. The <a href="lang_transaction.html#immediate">BEGIN IMMEDIATE</a> command might itself return
|
|
SQLITE_BUSY, but if it succeeds, then SQLite guarantees that no
|
|
subsequent operations on the same database through the next <a href="lang_transaction.html">COMMIT</a>
|
|
will return SQLITE_BUSY.
|
|
<p>
|
|
See also: <a href="rescode.html#busy_recovery">SQLITE_BUSY_RECOVERY</a> and <a href="rescode.html#busy_snapshot">SQLITE_BUSY_SNAPSHOT</a>.
|
|
<p>
|
|
The SQLITE_BUSY result code differs from <a href="rescode.html#locked">SQLITE_LOCKED</a> in that
|
|
SQLITE_BUSY indicates a conflict with a
|
|
separate <a href="c3ref/sqlite3.html">database connection</a>, probably in a separate process,
|
|
whereas <a href="rescode.html#locked">SQLITE_LOCKED</a>
|
|
indicates a conflict within the same <a href="c3ref/sqlite3.html">database connection</a> (or sometimes
|
|
a database connection with a <a href="sharedcache.html">shared cache</a>).
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="locked"></a>
|
|
<h3>(6) SQLITE_LOCKED</h3>
|
|
<p>
|
|
The SQLITE_LOCKED result code indicates that a write operation could not
|
|
continue because of a conflict within the same <a href="c3ref/sqlite3.html">database connection</a> or
|
|
a conflict with a different database connection that uses a <a href="sharedcache.html">shared cache</a>.
|
|
<p>
|
|
For example, a <a href="lang_droptable.html">DROP TABLE</a> statement cannot be run while another thread
|
|
is reading from that table on the same <a href="c3ref/sqlite3.html">database connection</a> because
|
|
dropping the table would delete the table out from under the concurrent
|
|
reader.
|
|
<p>
|
|
The SQLITE_LOCKED result code differs from <a href="rescode.html#busy">SQLITE_BUSY</a> in that
|
|
SQLITE_LOCKED indicates a conflict on the same <a href="c3ref/sqlite3.html">database connection</a>
|
|
(or on a connection with a <a href="sharedcache.html">shared cache</a>) whereas <a href="rescode.html#busy">SQLITE_BUSY</a> indicates
|
|
a conflict with a different database connection, probably in a different
|
|
process.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="nomem"></a>
|
|
<h3>(7) SQLITE_NOMEM</h3>
|
|
<p>
|
|
The SQLITE_NOMEM result code indicates that SQLite was unable to allocate
|
|
all the memory it needed to complete the operation. In other words, an
|
|
internal call to <a href="c3ref/free.html">sqlite3_malloc()</a> or <a href="c3ref/free.html">sqlite3_realloc()</a> has failed in
|
|
a case where the memory being allocated was required in order to continue
|
|
the operation.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="readonly"></a>
|
|
<h3>(8) SQLITE_READONLY</h3>
|
|
<p>
|
|
The SQLITE_READONLY result code is returned when an attempt is made to
|
|
alter some data for which the current database connection does not have
|
|
write permission.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="interrupt"></a>
|
|
<h3>(9) SQLITE_INTERRUPT</h3>
|
|
<p>
|
|
The SQLITE_INTERRUPT result code indicates that an operation was
|
|
interrupted by the <a href="c3ref/interrupt.html">sqlite3_interrupt()</a> interface.
|
|
See also: <a href="rescode.html#abort">SQLITE_ABORT</a>
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr"></a>
|
|
<h3>(10) SQLITE_IOERR</h3>
|
|
<p>
|
|
The SQLITE_IOERR result code says that the operation could not finish
|
|
because the operating system reported an I/O error.
|
|
<p>
|
|
A full disk drive will normally give an <a href="rescode.html#full">SQLITE_FULL</a> error rather than
|
|
an SQLITE_IOERR error.
|
|
<p>
|
|
There are many different extended result codes for I/O errors that
|
|
identify the specific I/O operation that failed.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="corrupt"></a>
|
|
<h3>(11) SQLITE_CORRUPT</h3>
|
|
<p>
|
|
The SQLITE_CORRUPT result code indicates that the database file has
|
|
been corrupted. See the <a href="lockingv3.html#how_to_corrupt">How To Corrupt Your Database Files</a> for
|
|
further discussion on how corruption can occur.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="notfound"></a>
|
|
<h3>(12) SQLITE_NOTFOUND</h3>
|
|
<p>
|
|
The SQLITE_NOTFOUND result code is used in two contexts.
|
|
SQLITE_NOTFOUND can be returned by the <a href="c3ref/file_control.html">sqlite3_file_control()</a> interface
|
|
to indicate that the <a href="c3ref/c_fcntl_begin_atomic_write.html">file control opcode</a> passed as the third argument
|
|
was not recognized by the underlying <a href="vfs.html">VFS</a>.
|
|
SQLITE_NOTFOUND can also be returned by the xSetSystemCall() method of
|
|
an <a href="c3ref/vfs.html">sqlite3_vfs</a> object.
|
|
<p>
|
|
The SQLITE_NOTFOUND result code is also used
|
|
internally by the SQLite implementation, but those internal uses are
|
|
not exposed to the application.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="full"></a>
|
|
<h3>(13) SQLITE_FULL</h3>
|
|
<p>
|
|
The SQLITE_FULL result code indicates that a write could not complete
|
|
because the disk is full. Note that this error can occur when trying
|
|
to write information into the main database file, or it can also
|
|
occur when writing into <a href="tempfiles.html">temporary disk files</a>.
|
|
<p>
|
|
Sometimes applications encounter this error even though there is an
|
|
abundance of primary disk space because the error occurs when writing
|
|
into <a href="tempfiles.html">temporary disk files</a> on a system where temporary files are stored
|
|
on a separate partition with much less space that the primary disk.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="cantopen"></a>
|
|
<h3>(14) SQLITE_CANTOPEN</h3>
|
|
<p>
|
|
The SQLITE_CANTOPEN result code indicates that SQLite was unable to
|
|
open a file. The file in question might be a primary database file
|
|
or one of several <a href="tempfiles.html">temporary disk files</a>.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="protocol"></a>
|
|
<h3>(15) SQLITE_PROTOCOL</h3>
|
|
<p>
|
|
The SQLITE_PROTOCOL result code indicates a problem with the file locking
|
|
protocol used by SQLite. The SQLITE_PROTOCOL error is currently only
|
|
returned when using <a href="wal.html">WAL mode</a> and attempting to start a new transaction.
|
|
There is a race condition that can occur when two separate
|
|
<a href="c3ref/sqlite3.html">database connections</a> both try to start a transaction at the same time
|
|
in <a href="wal.html">WAL mode</a>. The loser of the race backs off and tries again, after
|
|
a brief delay. If the same connection loses the locking race dozens
|
|
of times over a span of multiple seconds, it will eventually give up and
|
|
return SQLITE_PROTOCOL. The SQLITE_PROTOCOL error should appear in practice
|
|
very, very rarely, and only when there are many separate processes all
|
|
competing intensely to write to the same database.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="empty"></a>
|
|
<h3>(16) SQLITE_EMPTY</h3>
|
|
<p>
|
|
The SQLITE_EMPTY result code is not currently used.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="schema"></a>
|
|
<h3>(17) SQLITE_SCHEMA</h3>
|
|
<p>
|
|
The SQLITE_SCHEMA result code indicates that the database schema
|
|
has changed. This result code can be returned from <a href="c3ref/step.html">sqlite3_step()</a> for
|
|
a <a href="c3ref/stmt.html">prepared statement</a> that was generated using <a href="c3ref/prepare.html">sqlite3_prepare()</a> or
|
|
<a href="c3ref/prepare.html">sqlite3_prepare16()</a>. 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.
|
|
<p>
|
|
If a <a href="c3ref/stmt.html">prepared statement</a> is generated from <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> then
|
|
the statement is automatically re-prepared if the schema changes, up to
|
|
<a href="compile.html#max_schema_retry">SQLITE_MAX_SCHEMA_RETRY</a> times (default: 50). The <a href="c3ref/step.html">sqlite3_step()</a>
|
|
interface will only return SQLITE_SCHEMA back to the application if
|
|
the failure persists after these many retries.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="toobig"></a>
|
|
<h3>(18) SQLITE_TOOBIG</h3>
|
|
<p>
|
|
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 <a href="limits.html#max_length">SQLITE_MAX_LENGTH</a> compile-time option, or at run-time using
|
|
the <a href="c3ref/limit.html">sqlite3_limit</a>(db,<a href="c3ref/c_limit_attached.html#sqlitelimitlength">SQLITE_LIMIT_LENGTH</a>,...) interface. The
|
|
SQLITE_TOOBIG error results when SQLite encounters a string or BLOB
|
|
that exceeds the compile-time or run-time limit.
|
|
<p>
|
|
The SQLITE_TOOBIG error code can also result when an oversized SQL
|
|
statement is passed into one of the <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> 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 <a href="limits.html#max_sql_length">SQLITE_MAX_SQL_LENGTH</a> or at run-time
|
|
using <a href="c3ref/limit.html">sqlite3_limit</a>(db,<a href="c3ref/c_limit_attached.html#sqlitelimitsqllength">SQLITE_LIMIT_SQL_LENGTH</a>,...).
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint"></a>
|
|
<h3>(19) SQLITE_CONSTRAINT</h3>
|
|
<p>
|
|
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 <a href="c3ref/errcode.html">sqlite3_errmsg()</a> or
|
|
<a href="c3ref/errcode.html">sqlite3_errmsg16()</a>) or by looking at the <a href="rescode.html#extrc">extended error code</a>.
|
|
<p>
|
|
The SQLITE_CONSTRAINT code can also be used as the return value from
|
|
the <a href="vtab.html#xbestindex">xBestIndex()</a> method of a <a href="vtab.html">virtual table</a> implementation. When
|
|
xBestIndex() returns SQLITE_CONSTRAINT, that indicates that the particular
|
|
combination of inputs submitted to xBestIndex() cannot result in a
|
|
usable query plan and should not be given further consideration.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="mismatch"></a>
|
|
<h3>(20) SQLITE_MISMATCH</h3>
|
|
<p>
|
|
The SQLITE_MISMATCH error code indicates a datatype mismatch.
|
|
<p>
|
|
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.
|
|
<p>
|
|
The <a href="lang_createtable.html#rowid">rowid</a> of a table must be an integer. Attempt to set the <a href="lang_createtable.html#rowid">rowid</a>
|
|
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.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="misuse"></a>
|
|
<h3>(21) SQLITE_MISUSE</h3>
|
|
<p>
|
|
The SQLITE_MISUSE return code might be returned if the application uses
|
|
any SQLite interface in a way that is undefined or unsupported. For
|
|
example, using a <a href="c3ref/stmt.html">prepared statement</a> after that prepared statement has
|
|
been <a href="c3ref/finalize.html">finalized</a> might result in an SQLITE_MISUSE error.
|
|
<p>
|
|
SQLite tries to detect misuse and report the misuse using this result code.
|
|
However, there is no guarantee that the detection of misuse will be
|
|
successful. Misuse detection is probabilistic. Applications should
|
|
never depend on an SQLITE_MISUSE return value.
|
|
<p>
|
|
If SQLite ever returns SQLITE_MISUSE from any interface, that means that
|
|
the application is incorrectly coded and needs to be fixed. Do not ship
|
|
an application that sometimes returns SQLITE_MISUSE from a standard
|
|
SQLite interface because that application contains potentially serious bugs.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="nolfs"></a>
|
|
<h3>(22) SQLITE_NOLFS</h3>
|
|
<p>
|
|
The SQLITE_NOLFS error can be returned on systems that do not support
|
|
large files when the database grows to be larger than what the filesystem
|
|
can handle. "NOLFS" stands for "NO Large File Support".
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="auth"></a>
|
|
<h3>(23) SQLITE_AUTH</h3>
|
|
<p>
|
|
The SQLITE_AUTH error is returned when the
|
|
<a href="c3ref/set_authorizer.html">authorizer callback</a> indicates that an
|
|
SQL statement being prepared is not authorized.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="format"></a>
|
|
<h3>(24) SQLITE_FORMAT</h3>
|
|
<p>
|
|
The SQLITE_FORMAT error code is not currently used by SQLite.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="range"></a>
|
|
<h3>(25) SQLITE_RANGE</h3>
|
|
<p>
|
|
The SQLITE_RANGE error indices that the parameter number argument
|
|
to one of the <a href="c3ref/bind_blob.html">sqlite3_bind</a> routines or the
|
|
column number in one of the <a href="c3ref/column_blob.html">sqlite3_column</a>
|
|
routines is out of range.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="notadb"></a>
|
|
<h3>(26) SQLITE_NOTADB</h3>
|
|
<p>
|
|
When attempting to open a file, the SQLITE_NOTADB error indicates that
|
|
the file being opened does not appear to be an SQLite database file.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="notice"></a>
|
|
<h3>(27) SQLITE_NOTICE</h3>
|
|
<p>
|
|
The SQLITE_NOTICE result code is not returned by any C/C++ interface.
|
|
However, SQLITE_NOTICE (or rather one of its <a href="rescode.html#extrc">extended error codes</a>)
|
|
is sometimes used as the first argument in an <a href="c3ref/log.html">sqlite3_log()</a> callback
|
|
to indicate that an unusual operation is taking place.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="warning"></a>
|
|
<h3>(28) SQLITE_WARNING</h3>
|
|
<p>
|
|
The SQLITE_WARNING result code is not returned by any C/C++ interface.
|
|
However, SQLITE_WARNING (or rather one of its <a href="rescode.html#extrc">extended error codes</a>)
|
|
is sometimes used as the first argument in an <a href="c3ref/log.html">sqlite3_log()</a> callback
|
|
to indicate that an unusual and possibly ill-advised operation is
|
|
taking place.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="row"></a>
|
|
<h3>(100) SQLITE_ROW</h3>
|
|
<p>
|
|
The SQLITE_ROW result code returned by
|
|
<a href="c3ref/step.html">sqlite3_step()</a> indicates that another row of output is available.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="done"></a>
|
|
<h3>(101) SQLITE_DONE</h3>
|
|
<p>
|
|
The SQLITE_DONE result code indicates that an operation has completed.
|
|
The SQLITE_DONE result code is most commonly seen as a return value
|
|
from <a href="c3ref/step.html">sqlite3_step()</a> indicating that the SQL statement has run to
|
|
completion. But SQLITE_DONE can also be returned by other multi-step
|
|
interfaces such as <a href="c3ref/backup_finish.html#sqlite3backupstep">sqlite3_backup_step()</a>.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ok_load_permanently"></a>
|
|
<h3>(256) SQLITE_OK_LOAD_PERMANENTLY</h3>
|
|
<p>
|
|
The <a href="c3ref/load_extension.html">sqlite3_load_extension()</a> interface loads an
|
|
<a href="loadext.html">extension</a> into a single
|
|
database connection. The default behavior is for that extension to be
|
|
automatically unloaded when the database connection closes. However,
|
|
if the extension entry point returns SQLITE_OK_LOAD_PERMANENTLY instead
|
|
of SQLITE_OK, then the extension remains loaded into the process address
|
|
space after the database connection closes. In other words, the
|
|
xDlClose methods of the <a href="c3ref/vfs.html">sqlite3_vfs</a> object is not called for the
|
|
extension when the database connection closes.
|
|
<p>
|
|
The SQLITE_OK_LOAD_PERMANENTLY return code is useful to
|
|
<a href="loadext.html">loadable extensions</a> that register new <a href="vfs.html">VFSes</a>, for example.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="error_missing_collseq"></a>
|
|
<h3>(257) SQLITE_ERROR_MISSING_COLLSEQ</h3>
|
|
<p>
|
|
The SQLITE_ERROR_MISSING_COLLSEQ result code means that an SQL
|
|
statement could not be prepared because a collating sequence named
|
|
in that SQL statement could not be located.
|
|
<p>
|
|
Sometimes when this error code is encountered, the
|
|
<a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> routine will convert the error into
|
|
<a href="rescode.html#error_retry">SQLITE_ERROR_RETRY</a> and try again to prepare the SQL statement
|
|
using a different query plan that does not require the use of
|
|
the unknown collating sequence.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="busy_recovery"></a>
|
|
<h3>(261) SQLITE_BUSY_RECOVERY</h3>
|
|
<p>
|
|
The SQLITE_BUSY_RECOVERY error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#busy">SQLITE_BUSY</a> that indicates that an operation could not continue
|
|
because another process is busy recovering a <a href="wal.html">WAL mode</a> database file
|
|
following a crash. The SQLITE_BUSY_RECOVERY error code only occurs
|
|
on <a href="wal.html">WAL mode</a> databases.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="locked_sharedcache"></a>
|
|
<h3>(262) SQLITE_LOCKED_SHAREDCACHE</h3>
|
|
<p>
|
|
The SQLITE_LOCKED_SHAREDCACHE error code is
|
|
an <a href="rescode.html#pve">extended error code</a> for <a href="rescode.html#locked">SQLITE_LOCKED</a>
|
|
indicating that the locking conflict has occurred due to contention
|
|
with a different <a href="c3ref/sqlite3.html">database connection</a> that happens to hold a
|
|
<a href="sharedcache.html">shared cache</a> with the database connection to which the error was
|
|
returned. For example, if the other database connection is holding
|
|
an <a href="lockingv3.html#excl_lock">exclusive lock</a> on the database, then the database connection
|
|
that receives this error will be unable to read or write any part
|
|
of the database file unless it has the <a href="pragma.html#pragma_read_uncommitted">read_uncommitted pragma</a>
|
|
enabled.
|
|
<p>
|
|
The SQLITE_LOCKED_SHARECACHE error code works very much like the
|
|
<a href="rescode.html#busy">SQLITE_BUSY</a> error code except that SQLITE_LOCKED_SHARECACHE is
|
|
for separate database connections that share a cache whereas
|
|
SQLITE_BUSY is for the much more common case of separate database
|
|
connections that do not share the same cache. Also, the
|
|
<a href="c3ref/busy_handler.html">sqlite3_busy_handler()</a> and <a href="c3ref/busy_timeout.html">sqlite3_busy_timeout()</a> interfaces
|
|
do not help in resolving SQLITE_LOCKED_SHAREDCACHE conflicts.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="readonly_recovery"></a>
|
|
<h3>(264) SQLITE_READONLY_RECOVERY</h3>
|
|
<p>
|
|
The SQLITE_READONLY_RECOVERY error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#readonly">SQLITE_READONLY</a>. The SQLITE_READONLY_RECOVERY error code indicates
|
|
that a <a href="wal.html">WAL mode</a> database cannot be opened because the database file
|
|
needs to be recovered and recovery requires write access but only
|
|
read access is available.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_read"></a>
|
|
<h3>(266) SQLITE_IOERR_READ</h3>
|
|
<p>
|
|
The SQLITE_IOERR_READ error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
|
|
while trying to read from a file on disk. This error might result
|
|
from a hardware malfunction or because a filesystem came unmounted
|
|
while the file was open.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="corrupt_vtab"></a>
|
|
<h3>(267) SQLITE_CORRUPT_VTAB</h3>
|
|
<p>
|
|
The SQLITE_CORRUPT_VTAB error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#corrupt">SQLITE_CORRUPT</a> used by <a href="vtab.html">virtual tables</a>. A <a href="vtab.html">virtual table</a> might
|
|
return SQLITE_CORRUPT_VTAB to indicate that content in the virtual table
|
|
is corrupt.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="cantopen_notempdir"></a>
|
|
<h3>(270) SQLITE_CANTOPEN_NOTEMPDIR</h3>
|
|
<p>
|
|
The SQLITE_CANTOPEN_NOTEMPDIR error code is no longer used.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_check"></a>
|
|
<h3>(275) SQLITE_CONSTRAINT_CHECK</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_CHECK error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#ckconst">CHECK constraint</a> failed.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="notice_recover_wal"></a>
|
|
<h3>(283) SQLITE_NOTICE_RECOVER_WAL</h3>
|
|
<p>
|
|
The SQLITE_NOTICE_RECOVER_WAL result code is
|
|
passed to the callback of
|
|
<a href="c3ref/log.html">sqlite3_log()</a> when a <a href="wal.html">WAL mode</a> database file is recovered.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="warning_autoindex"></a>
|
|
<h3>(284) SQLITE_WARNING_AUTOINDEX</h3>
|
|
<p>
|
|
The SQLITE_WARNING_AUTOINDEX result code is
|
|
passed to the callback of
|
|
<a href="c3ref/log.html">sqlite3_log()</a> whenever <a href="optoverview.html#autoindex">automatic indexing</a> is used.
|
|
This can serve as a warning to application designers that the
|
|
database might benefit from additional indexes.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="error_retry"></a>
|
|
<h3>(513) SQLITE_ERROR_RETRY</h3>
|
|
<p>
|
|
The SQLITE_ERROR_RETRY is used internally to provoke <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a>
|
|
(or one of its sibling routines for creating prepared statements) to
|
|
try again to prepare a statement that failed with an error on the
|
|
previous attempt.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="abort_rollback"></a>
|
|
<h3>(516) SQLITE_ABORT_ROLLBACK</h3>
|
|
<p>
|
|
The SQLITE_ABORT_ROLLBACK error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#abort">SQLITE_ABORT</a> indicating that an SQL statement aborted because
|
|
the transaction that was active when the SQL statement first started
|
|
was rolled back. Pending write operations always fail with this error
|
|
when a rollback occurs. A <a href="lang_transaction.html">ROLLBACK</a> will cause a pending read operation
|
|
to fail only if the schema was changed within the transaction being rolled
|
|
back.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="busy_snapshot"></a>
|
|
<h3>(517) SQLITE_BUSY_SNAPSHOT</h3>
|
|
<p>
|
|
The SQLITE_BUSY_SNAPSHOT error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#busy">SQLITE_BUSY</a> that occurs on <a href="wal.html">WAL mode</a> databases when a database
|
|
connection tries to promote a read transaction into a write transaction
|
|
but finds that another <a href="c3ref/sqlite3.html">database connection</a> has already written to the
|
|
database and thus invalidated prior reads.
|
|
<p>
|
|
The following scenario illustrates how an SQLITE_BUSY_SNAPSHOT error
|
|
might arise:
|
|
<ol>
|
|
<li> Process A starts a read transaction on the database and does one
|
|
or more SELECT statement. Process A keeps the transaction open.
|
|
<li> Process B updates the database, changing values previous read by
|
|
process A.
|
|
<li> Process A now tries to write to the database. But process A's view
|
|
of the database content is now obsolete because process B has
|
|
modified the database file after process A read from it. Hence
|
|
process A gets an SQLITE_BUSY_SNAPSHOT error.
|
|
</ol>
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="locked_vtab"></a>
|
|
<h3>(518) SQLITE_LOCKED_VTAB</h3>
|
|
<p>
|
|
The SQLITE_LOCKED_VTAB result code is not used by the SQLite core, but
|
|
it is available for use by extensions. Virtual table implementations
|
|
can return this result code to indicate that they cannot complete the
|
|
current operation because of locks held by other threads or processes.
|
|
<p>
|
|
The <a href="rtree.html">R-Tree extension</a> returns this result code when an attempt is made
|
|
to update the R-Tree while another prepared statement is actively reading
|
|
the R-Tree. The update cannot proceed because any change to an R-Tree
|
|
might involve reshuffling and rebalancing of nodes, which would disrupt
|
|
read cursors, causing some rows to be repeated and other rows to be
|
|
omitted.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="readonly_cantlock"></a>
|
|
<h3>(520) SQLITE_READONLY_CANTLOCK</h3>
|
|
<p>
|
|
The SQLITE_READONLY_CANTLOCK error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#readonly">SQLITE_READONLY</a>. The SQLITE_READONLY_CANTLOCK error code indicates
|
|
that SQLite is unable to obtain a read lock on a <a href="wal.html">WAL mode</a> database
|
|
because the shared-memory file associated with that database is read-only.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_short_read"></a>
|
|
<h3>(522) SQLITE_IOERR_SHORT_READ</h3>
|
|
<p>
|
|
The SQLITE_IOERR_SHORT_READ error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating that a read attempt in the <a href="vfs.html">VFS</a> layer
|
|
was unable to obtain as many bytes as was requested. This might be
|
|
due to a truncated file.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="corrupt_sequence"></a>
|
|
<h3>(523) SQLITE_CORRUPT_SEQUENCE</h3>
|
|
<p>
|
|
The SQLITE_CORRUPT_SEQUENCE result code means that the schema of
|
|
the sqlite_sequence table is corrupt. The sqlite_sequence table
|
|
is used to help implement the <a href="autoinc.html">AUTOINCREMENT</a> feature. The
|
|
sqlite_sequence table should have the following format:
|
|
<blockquote><pre>
|
|
CREATE TABLE sqlite_sequence(name,seq);
|
|
</pre></blockquote>
|
|
<p>If SQLite discovers that the sqlite_sequence table has any other
|
|
format, it returns the SQLITE_CORRUPT_SEQUENCE error.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="cantopen_isdir"></a>
|
|
<h3>(526) SQLITE_CANTOPEN_ISDIR</h3>
|
|
<p>
|
|
The SQLITE_CANTOPEN_ISDIR error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#cantopen">SQLITE_CANTOPEN</a> indicating that a file open operation failed because
|
|
the file is really a directory.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_commithook"></a>
|
|
<h3>(531) SQLITE_CONSTRAINT_COMMITHOOK</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_COMMITHOOK error code
|
|
is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a
|
|
<a href="c3ref/commit_hook.html">commit hook callback</a> returned non-zero that thus
|
|
caused the SQL statement to be rolled back.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="notice_recover_rollback"></a>
|
|
<h3>(539) SQLITE_NOTICE_RECOVER_ROLLBACK</h3>
|
|
<p>
|
|
The SQLITE_NOTICE_RECOVER_ROLLBACK result code is
|
|
passed to the callback of
|
|
<a href="c3ref/log.html">sqlite3_log()</a> when a <a href="fileformat2.html#hotjrnl">hot journal</a> is rolled back.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="error_snapshot"></a>
|
|
<h3>(769) SQLITE_ERROR_SNAPSHOT</h3>
|
|
<p>
|
|
The SQLITE_ERROR_SNAPSHOT result code might be returned when attempting
|
|
to start a read transaction on an historical version of the database
|
|
by using the <a href="c3ref/snapshot_open.html">sqlite3_snapshot_open()</a> interface. If the historical
|
|
snapshot is no longer available, then the read transaction will fail
|
|
with the SQLITE_ERROR_SNAPSHOT. This error code is only possible if
|
|
SQLite is compiled with <a href="compile.html#enable_snapshot">-DSQLITE_ENABLE_SNAPSHOT</a>.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="readonly_rollback"></a>
|
|
<h3>(776) SQLITE_READONLY_ROLLBACK</h3>
|
|
<p>
|
|
The SQLITE_READONLY_ROLLBACK error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#readonly">SQLITE_READONLY</a>. The SQLITE_READONLY_ROLLBACK error code indicates
|
|
that a database cannot be opened because it has a <a href="fileformat2.html#hotjrnl">hot journal</a> that
|
|
needs to be rolled back but cannot because the database is readonly.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_write"></a>
|
|
<h3>(778) SQLITE_IOERR_WRITE</h3>
|
|
<p>
|
|
The SQLITE_IOERR_WRITE error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
|
|
while trying to write into a file on disk. This error might result
|
|
from a hardware malfunction or because a filesystem came unmounted
|
|
while the file was open. This error should not occur if the filesystem
|
|
is full as there is a separate error code (SQLITE_FULL) for that purpose.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="cantopen_fullpath"></a>
|
|
<h3>(782) SQLITE_CANTOPEN_FULLPATH</h3>
|
|
<p>
|
|
The SQLITE_CANTOPEN_FULLPATH error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#cantopen">SQLITE_CANTOPEN</a> indicating that a file open operation failed because
|
|
the operating system was unable to convert the filename into a full pathname.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_foreignkey"></a>
|
|
<h3>(787) SQLITE_CONSTRAINT_FOREIGNKEY</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_FOREIGNKEY error code
|
|
is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="foreignkeys.html">foreign key constraint</a> failed.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="readonly_dbmoved"></a>
|
|
<h3>(1032) SQLITE_READONLY_DBMOVED</h3>
|
|
<p>
|
|
The SQLITE_READONLY_DBMOVED error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#readonly">SQLITE_READONLY</a>. The SQLITE_READONLY_DBMOVED error code indicates
|
|
that a database cannot be modified because the database file has been
|
|
moved since it was opened, and so any attempt to modify the database
|
|
might result in database corruption if the processes crashes because the
|
|
<a href="lockingv3.html#rollback">rollback journal</a> would not be correctly named.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_fsync"></a>
|
|
<h3>(1034) SQLITE_IOERR_FSYNC</h3>
|
|
<p>
|
|
The SQLITE_IOERR_FSYNC error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
|
|
while trying to flush previously written content out of OS and/or
|
|
disk-control buffers and into persistent storage. In other words,
|
|
this code indicates a problem with the fsync() system call in unix
|
|
or the FlushFileBuffers() system call in windows.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="cantopen_convpath"></a>
|
|
<h3>(1038) SQLITE_CANTOPEN_CONVPATH</h3>
|
|
<p>
|
|
The SQLITE_CANTOPEN_CONVPATH error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#cantopen">SQLITE_CANTOPEN</a> used only by Cygwin <a href="vfs.html">VFS</a> and indicating that
|
|
the cygwin_conv_path() system call failed while trying to open a file.
|
|
See also: <a href="rescode.html#ioerr_convpath">SQLITE_IOERR_CONVPATH</a>
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_function"></a>
|
|
<h3>(1043) SQLITE_CONSTRAINT_FUNCTION</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_FUNCTION error code is not currently used
|
|
by the SQLite core. However, this error code is available for use
|
|
by extension functions.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="readonly_cantinit"></a>
|
|
<h3>(1288) SQLITE_READONLY_CANTINIT</h3>
|
|
<p>
|
|
The SQLITE_READONLY_CANTINIT result code originates in the xShmMap method
|
|
of a <a href="vfs.html">VFS</a> to indicate that the shared memory region used by <a href="wal.html">WAL mode</a>
|
|
exists buts its content is unreliable and unusable by the current process
|
|
since the current process does not have write permission on the shared
|
|
memory region. (The shared memory region for WAL mode is normally a
|
|
file with a "-wal" suffix that is mmapped into the process space. If
|
|
the current process does not have write permission on that file, then it
|
|
cannot write into shared memory.)
|
|
<p>
|
|
Higher level logic within SQLite will normally intercept the error code
|
|
and create a temporary in-memory shared memory region so that the current
|
|
process can at least read the content of the database. This result code
|
|
should not reach the application interface layer.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_dir_fsync"></a>
|
|
<h3>(1290) SQLITE_IOERR_DIR_FSYNC</h3>
|
|
<p>
|
|
The SQLITE_IOERR_DIR_FSYNC error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
|
|
while trying to invoke fsync() on a directory. The unix <a href="vfs.html">VFS</a> attempts
|
|
to fsync() directories after creating or deleting certain files to
|
|
ensure that those files will still appear in the filesystem following
|
|
a power loss or system crash. This error code indicates a problem
|
|
attempting to perform that fsync().
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="cantopen_dirtywal"></a>
|
|
<h3>(1294) SQLITE_CANTOPEN_DIRTYWAL</h3>
|
|
<p>
|
|
The SQLITE_CANTOPEN_DIRTYWAL result code is not used at this time.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_notnull"></a>
|
|
<h3>(1299) SQLITE_CONSTRAINT_NOTNULL</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_NOTNULL error code
|
|
is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#notnullconst">NOT NULL constraint</a> failed.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="readonly_directory"></a>
|
|
<h3>(1544) SQLITE_READONLY_DIRECTORY</h3>
|
|
<p>
|
|
The SQLITE_READONLY_DIRECTORY result code indicates that the database
|
|
is read-only because process does not have permission to create
|
|
a journal file in the same directory as the database and the creation of
|
|
a journal file is a prerequisite for writing.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_truncate"></a>
|
|
<h3>(1546) SQLITE_IOERR_TRUNCATE</h3>
|
|
<p>
|
|
The SQLITE_IOERR_TRUNCATE error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
|
|
while trying to truncate a file to a smaller size.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_primarykey"></a>
|
|
<h3>(1555) SQLITE_CONSTRAINT_PRIMARYKEY</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_PRIMARYKEY error code
|
|
is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#primkeyconst">PRIMARY KEY constraint</a> failed.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_fstat"></a>
|
|
<h3>(1802) SQLITE_IOERR_FSTAT</h3>
|
|
<p>
|
|
The SQLITE_IOERR_FSTAT error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the <a href="vfs.html">VFS</a> layer
|
|
while trying to invoke fstat() (or the equivalent) on a file in order
|
|
to determine information such as the file size or access permissions.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_trigger"></a>
|
|
<h3>(1811) SQLITE_CONSTRAINT_TRIGGER</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_TRIGGER error code
|
|
is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtrigger.html#raise">RAISE function</a> within
|
|
a <a href="lang_createtrigger.html">trigger</a> fired, causing the SQL statement to abort.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_unlock"></a>
|
|
<h3>(2058) SQLITE_IOERR_UNLOCK</h3>
|
|
<p>
|
|
The SQLITE_IOERR_UNLOCK error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within xUnlock method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_unique"></a>
|
|
<h3>(2067) SQLITE_CONSTRAINT_UNIQUE</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_UNIQUE error code
|
|
is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#uniqueconst">UNIQUE constraint</a> failed.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_rdlock"></a>
|
|
<h3>(2314) SQLITE_IOERR_RDLOCK</h3>
|
|
<p>
|
|
The SQLITE_IOERR_UNLOCK error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within xLock method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object while trying
|
|
to obtain a read lock.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_vtab"></a>
|
|
<h3>(2323) SQLITE_CONSTRAINT_VTAB</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_VTAB error code is not currently used
|
|
by the SQLite core. However, this error code is available for use
|
|
by application-defined <a href="vtab.html">virtual tables</a>.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_delete"></a>
|
|
<h3>(2570) SQLITE_IOERR_DELETE</h3>
|
|
<p>
|
|
The SQLITE_IOERR_UNLOCK error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within xDelete method on the <a href="c3ref/vfs.html">sqlite3_vfs</a> object.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="constraint_rowid"></a>
|
|
<h3>(2579) SQLITE_CONSTRAINT_ROWID</h3>
|
|
<p>
|
|
The SQLITE_CONSTRAINT_ROWID error code
|
|
is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#constraint">SQLITE_CONSTRAINT</a> indicating that a <a href="lang_createtable.html#rowid">rowid</a> is not unique.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_blocked"></a>
|
|
<h3>(2826) SQLITE_IOERR_BLOCKED</h3>
|
|
<p>
|
|
The SQLITE_IOERR_BLOCKED error code is no longer used.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_nomem"></a>
|
|
<h3>(3082) SQLITE_IOERR_NOMEM</h3>
|
|
<p>
|
|
The SQLITE_IOERR_NOMEM error code is sometimes returned by the <a href="vfs.html">VFS</a>
|
|
layer to indicate that an operation could not be completed due to the
|
|
inability to allocate sufficient memory. This error code is normally
|
|
converted into <a href="rescode.html#nomem">SQLITE_NOMEM</a> by the higher layers of SQLite before
|
|
being returned to the application.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_access"></a>
|
|
<h3>(3338) SQLITE_IOERR_ACCESS</h3>
|
|
<p>
|
|
The SQLITE_IOERR_ACCESS error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within the xAccess method on the <a href="c3ref/vfs.html">sqlite3_vfs</a> object.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_checkreservedlock"></a>
|
|
<h3>(3594) SQLITE_IOERR_CHECKRESERVEDLOCK</h3>
|
|
<p>
|
|
The SQLITE_IOERR_CHECKRESERVEDLOCK error code is
|
|
an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within the xCheckReservedLock method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_lock"></a>
|
|
<h3>(3850) SQLITE_IOERR_LOCK</h3>
|
|
<p>
|
|
The SQLITE_IOERR_LOCK error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error in the
|
|
advisory file locking logic.
|
|
Usually an SQLITE_IOERR_LOCK error indicates a problem obtaining
|
|
a <a href="lockingv3.html#pending_lock">PENDING lock</a>. However it can also indicate miscellaneous
|
|
locking errors on some of the specialized <a href="vfs.html">VFSes</a> used on Macs.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_close"></a>
|
|
<h3>(4106) SQLITE_IOERR_CLOSE</h3>
|
|
<p>
|
|
The SQLITE_IOERR_ACCESS error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within the xClose method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_dir_close"></a>
|
|
<h3>(4362) SQLITE_IOERR_DIR_CLOSE</h3>
|
|
<p>
|
|
The SQLITE_IOERR_DIR_CLOSE error code is no longer used.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_shmopen"></a>
|
|
<h3>(4618) SQLITE_IOERR_SHMOPEN</h3>
|
|
<p>
|
|
The SQLITE_IOERR_SHMOPEN error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within the xShmMap method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
|
|
while trying to open a new shared memory segment.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_shmsize"></a>
|
|
<h3>(4874) SQLITE_IOERR_SHMSIZE</h3>
|
|
<p>
|
|
The SQLITE_IOERR_SHMSIZE error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within the xShmMap method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
|
|
while trying to enlarge a <a href="walformat.html#shm">"shm" file</a> as part of
|
|
<a href="wal.html">WAL mode</a> transaction processing. This error may indicate that
|
|
the underlying filesystem volume is out of space.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_shmlock"></a>
|
|
<h3>(5130) SQLITE_IOERR_SHMLOCK</h3>
|
|
<p>
|
|
The SQLITE_IOERR_SHMLOCK error code is no longer used.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_shmmap"></a>
|
|
<h3>(5386) SQLITE_IOERR_SHMMAP</h3>
|
|
<p>
|
|
The SQLITE_IOERR_SHMMAP error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within the xShmMap method on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
|
|
while trying to map a shared memory segment into the process address space.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_seek"></a>
|
|
<h3>(5642) SQLITE_IOERR_SEEK</h3>
|
|
<p>
|
|
The SQLITE_IOERR_SEEK error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within the xRead or xWrite methods on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
|
|
while trying to seek a file descriptor to the beginning point of the
|
|
file where the read or write is to occur.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_delete_noent"></a>
|
|
<h3>(5898) SQLITE_IOERR_DELETE_NOENT</h3>
|
|
<p>
|
|
The SQLITE_IOERR_DELETE_NOENT error code
|
|
is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating that the
|
|
xDelete method on the <a href="c3ref/vfs.html">sqlite3_vfs</a> object failed because the
|
|
file being deleted does not exist.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_mmap"></a>
|
|
<h3>(6154) SQLITE_IOERR_MMAP</h3>
|
|
<p>
|
|
The SQLITE_IOERR_MMAP error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating an I/O error
|
|
within the xFetch or xUnfetch methods on the <a href="c3ref/io_methods.html">sqlite3_io_methods</a> object
|
|
while trying to map or unmap part of the database file into the
|
|
process address space.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_gettemppath"></a>
|
|
<h3>(6410) SQLITE_IOERR_GETTEMPPATH</h3>
|
|
<p>
|
|
The SQLITE_IOERR_GETTEMPPATH error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> indicating that the <a href="vfs.html">VFS</a> is unable to determine
|
|
a suitable directory in which to place temporary files.
|
|
|
|
|
|
<!--------------------------------------------------------------->
|
|
<a name="ioerr_convpath"></a>
|
|
<h3>(6666) SQLITE_IOERR_CONVPATH</h3>
|
|
<p>
|
|
The SQLITE_IOERR_CONVPATH error code is an <a href="rescode.html#pve">extended error code</a>
|
|
for <a href="rescode.html#ioerr">SQLITE_IOERR</a> used only by Cygwin <a href="vfs.html">VFS</a> and indicating that
|
|
the cygwin_conv_path() system call failed.
|
|
See also: <a href="rescode.html#cantopen_convpath">SQLITE_CANTOPEN_CONVPATH</a>
|
|
|
|
|
|
|
|
</p>
|