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>
 |