概述
SQLite中的许多例程C语言界面返回表示成功或失败的数字结果代码,以及在发生故障时,提供一些关于失败。本文件力求解释每种这些数字结果代码的含义。
1结果代码与错误代码
“错误代码”是“结果代码”的子集,表示出了问题。只有少数非错误结果代码:SQLITE_OK(SQLITE_OK),SQLITE_ROW数据库、和SQLITE_DONE公司.术语“错误代码”是指除这三个之外的任何结果代码。
2主要结果代码与扩展结果代码
结果代码是有符号的32位整数。结果代码中最低有效的8位定义了一个广泛的类别和被称为“主要结果代码”。更重要的位提供有关错误的更详细信息,称为“扩展结果代码”
请注意,主结果代码始终是扩展的结果代码。给定完整的32位扩展结果代码,应用程序只需提取即可找到相应的主要结果代码扩展结果代码的最低有效8位。
所有扩展结果代码也是错误代码。因此,术语“扩展结果代码”和“扩展错误代码”是可互换的。
为了实现历史兼容性,C语言接口返回默认情况下为主要结果代码。最近错误的扩展结果代码可以是使用检索sqlite3_extended_errcode()接口。这个sqlite3_extended_result_codes()接口可用于放置一数据库连接进入返回扩展结果代码而不是主要结果代码。
三。定义
所有结果代码都是整数。使用以下命令创建所有结果代码的符号名称sqlite3.h头文件中的“#define”宏。的sqlite3.h头文件中有单独的部分这个结果代码定义和扩展结果代码定义.
主要结果代码符号名的格式为“SQLITE_XXXXXX”,其中XXXXXX是大写字母字符的序列。扩展结果代码名称的格式为“SQLITE_XXXXXX_YYYYYYY”,其中XXXXXX部分是相应的主要结果代码YYYYY是进一步分类结果代码的扩展。
现有结果代码的名称和数值是固定的和不变。然而,新的结果代码,尤其是新的扩展代码结果代码可能会出现在SQLite的未来版本中。
4主要结果代码列表
31个结果代码为定义单位为sqlite3.h和列在以下按字母顺序排列:
5扩展结果代码列表
74个扩展结果代码是定义单位为sqlite3.h和是按字母顺序列出如下:
6结果代码含义
所有105的含义结果代码值如下所示,按数字顺序排列。
(0)SQLITE_OK
SQLITE_OK结果代码表示操作成功并且没有错误。大多数其他结果代码指示错误。
(1) SQLITE_ERROR(SQLITE_错误)
SQLITE_ERROR结果代码是在以下情况下使用的通用错误代码没有其他更具体的错误代码可用。
(2) SQLITE_内部
SQLITE_INTERNAL结果代码指示内部故障。在SQLite的工作版本中,应用程序永远不会看到这种情况结果代码。如果应用程序确实遇到此结果代码,则显示数据库引擎中存在错误。
SQLite当前不生成此结果代码。然而,应用程序定义的SQL函数或虚拟表,或VFSe(虚拟专用服务器),或其他扩展可能导致此问题要返回的结果代码。
(3) SQLITE_PERM数据库
SQLITE_PERM结果代码指示请求的访问模式无法为新创建的数据库提供。
(4) SQLITE_ABORT公司
SQLITE_ABORT结果代码指示操作已中止在完成之前,通常是申请请求。另请参见:SQLITE_INTERRUPT数据库.
如果回调函数sqlite3_exec()返回非零,则sqlite3_exec()将返回SQLITE_ABORT。
如果回降操作发生在同一个数据库连接作为挂起的读取或写入,则挂起的读或写入可能会失败SQLITE_ABORT或SQLITE_ABORT_ROLLBACK数据库错误。
除了作为结果代码之外,SQLITE_ABORT值也用作冲突解决模式从返回sqlite3_vtab_on_conflict()接口。
(5) SQL站点总线
SQLITE_BUSY结果代码指示数据库文件无法由于并发活动而被写入(或在某些情况下被读取)其他一些数据库连接,通常是单独的过程。
例如,如果进程A处于大型写事务的中间同时进程B尝试启动新的写入事务,进程B将返回SQLITE_BUSY结果,因为SQLITE只支持一次一个作家。进程B需要等待进程A完成在开始新事务之前执行它的事务。这个sqlite3_busy_timeout()和sqlite3_busy_handler()接口和这个busy_timeout杂注可用于处理B以帮助其处理出现SQLITE_BUSY错误。
SQLITE_BUSY错误可能在事务中的任何时候发生:当在任何写操作或更新操作期间首先启动事务,或当事务提交时。为了避免在事务处理过程中遇到SQLITE_BUSY错误,应用程序可以使用立即开始而不仅仅是开始到启动事务。这个立即开始命令本身可能返回SQLITE_BUSY,但如果成功,则SQLITE保证不会从同一数据库到下一数据库的后续操作承诺将返回SQLITE_BUSY。
另请参见:SQLITE_BUSY_RECOVERY数据库和SQLITE_BUSY_SNAPSHOT数据库.
SQLITE_BUSY结果代码与SQL站点锁定(_L)在那里面SQLITE_BUSY表示与分离数据库连接,可能是在一个单独的过程中,然而SQL站点锁定(_L)表示同一冲突数据库连接(或有时与的数据库连接共享缓存).
(6) SQLITE_锁定
SQLITE_LOCKED结果代码指示写入操作无法由于同一内部的冲突而继续数据库连接或与使用共享缓存.
例如DROP表格语句无法在另一个线程时运行在同一张桌子上读数据库连接因为删除该表将从concurrent下删除该表阅读器。
SQLITE_LOCKED结果代码与SQLITE_BUSY数据库在那里面SQLITE_LOCKED表示同一个数据库连接(或在与共享缓存)然而SQLITE_BUSY数据库表示与不同的数据库连接发生冲突,可能在不同的数据库中过程。
(7) SQLITE_NOME公司
SQLITE_NOMEM结果代码指示SQLITE无法分配完成操作所需的所有内存。换句话说内部呼叫sqlite3_malloc()或sqlite3_realloc()在中失败需要分配内存才能继续的情况操作。
(8) 重复使用SQLITE_READONLY
尝试执行以下操作时返回SQLITE_READONLY结果代码更改当前数据库连接没有的一些数据写入权限。
(9) SQLITE_INTERRUPT数据库
SQLITE_INTERRUPT结果代码指示操作被sqlite3_中断()接口。另请参见:SQLITE_ABORT公司
(10) SQLITE_IOERR公司
SQLITE_IOERR结果代码表示操作无法完成因为操作系统报告了I/O错误。
完整磁盘驱动器通常会提供SQLITE_FULL公司错误而不是SQLITE_IOERR错误。
有许多不同的I/O错误扩展结果代码确定失败的特定I/O操作。
(11) SQLITE_CORRUPT
SQLITE_CORRUPT结果代码指示数据库文件已损坏。请参阅如何损坏数据库文件对于进一步讨论腐败是如何发生的。
(12) SQLITE_未找到
SQLITE_NOTFOUND结果代码以三种方式公开:
SQLITE_NOTFOUND可以由sqlite3_file_control()接口以表明文件控制操作码作为第三个参数通过基础未识别变频调速系统.
SQLITE_NOTFOUND也可以由的xSetSystemCall()方法返回一个sqlite3_vfs对象。
SQLITE_NOTFOUND可以由返回sqlite3_vtab_rhs_value()表示约束的右操作数对xBestIndex方法就是那个人打的电话。
还使用了SQLITE_NOTFOUND结果代码由SQLite实现内部使用,但这些内部使用是不向应用程序公开。
(13) SQLITE_FULL公司
SQLITE_FULL结果代码指示写入无法完成因为磁盘已满。请注意,尝试时可能会发生此错误将信息写入主数据库文件,或者它也可以写入时发生临时磁盘文件.
有时应用程序会遇到此错误,即使存在由于写入时发生错误,主磁盘空间充足进入之内临时磁盘文件在存储临时文件的系统上在一个单独的分区上,该分区的空间比主磁盘小得多。
(14) SQLITE_CANTOPEN公司
SQLITE_CANTOPEN结果代码表明SQLITE无法打开一个文件。有问题的文件可能是主数据库文件或者是其中之一临时磁盘文件.
(15) SQLITE_PROTOCOL公司
SQLITE_PROTOCOL结果代码表明文件锁定有问题SQLite使用的协议。SQLITE_PROTOCOL错误当前仅为使用时返回WAL模式并尝试启动新事务。当两个分离时,可能会出现竞争情况数据库连接两者都试图同时启动事务在里面WAL模式比赛的失败者退缩,然后再次尝试短暂的延迟。如果相同的连接丢失了锁赛道数十在几秒钟的时间跨度内,它最终会放弃return SQLITE_PROTOCOL。SQLITE_PROTOCOL错误应在实践中出现非常、非常罕见,并且只有当有许多单独的过程时为写入同一数据库而激烈竞争。
(16) SQLITE_EMPTY公司
当前未使用SQLITE_EMPTY结果代码。
(17) SQLITE_SCHEMA公司
SQLITE_SCHEMA结果代码指示数据库模式已更改。此结果代码可以从返回sqlite3_step()对于一准备好的报表使用生成的sqlite3_prepare()或sqlite3_prepare16()。如果数据库架构被其他人更改在准备报表的时间和语句已运行,可能会导致此错误。
如果准备好的报表由生成sqlite3_prepare_v2()然后如果模式更改,语句将自动重新准备,直到SQLITE_MAX_SCHEMA_RETRY公司次数(默认值:50)。这个sqlite3_step()接口只会将SQLITE_SCHEMA返回到应用程序,如果经过多次重试后,故障仍然存在。
(18) SQLITE_TOOBIG公司
SQLITE_TOOBIG错误代码指示字符串或BLOB太大。SQLite中字符串或BLOB的默认最大长度为1000000000字节。此最大长度可以在编译时更改使用SQLITE_MAX_长度compile-time选项,或在运行时使用这个sqlite3_限制(分贝,SQLITE_LIMIT_LENGTH公司,...) 接口。这个SQLITE遇到字符串或BLOB时会导致SQLITE_TOOBIG错误超过编译时间或运行时间限制的。
当SQL过大时,也可能导致SQLITE_TOOBIG错误代码语句传递到sqlite3_prepare_v2()接口。SQL语句的最大长度默认为更小值1000000000字节。SQL语句的最大长度可以是在编译时使用设置SQLITE_MAX_SQL_长度或在运行时使用sqlite3_限制(分贝,SQLITE_LIMIT_SQL_LENGTH公司,...).
(19) SQLITE_CONSTRAINT公司
SQLITE_CONSTRAINT错误代码表示SQL约束冲突尝试处理SQL语句时发生。其他信息有关失败约束的信息,请参阅附带的错误消息(通过返回sqlite3_errmsg()或sqlite3_errmsg16())或者通过查看扩展错误代码.
SQLITE_CONSTRAINT代码也可以用作这个xBestIndex()a的方法虚拟表实施。什么时候?xBestIndex()返回SQLITE_CONSTRAINT,它指示提交给xBestIndex()的输入组合不能导致可用的查询计划,不应进一步考虑。
(20) SQLITE_MISMATCH数据库
SQLITE_MISMATCH错误代码表示数据类型不匹配。
SQLite通常非常宽容值和该值所在的容器的声明类型要存储。例如,SQLite允许应用程序存储列中声明类型为BOOLEAN的大型BLOB。但在少数情况下在这种情况下,SQLite对类型是严格的。SQLITE_MISMATCH错误是在类型不匹配的少数情况下返回。
这个罗伊德表的值必须是整数。尝试设置罗伊德除整数(或NULL之外的任何值,该值将自动转换为下一个可用的整数rowid)会导致SQLITE_MISMATCH错误。
(21)SQLITE_MISUSE
如果应用程序使用任何未定义或不受支持的SQLite接口。对于示例,使用准备好的报表在准备好的声明之后已经定稿可能会导致SQLITE_MISUSE错误。
SQLite尝试使用此结果代码检测误用并报告误用。然而,不能保证检测到滥用成功。误用检测是概率性的。应用程序应永远不要依赖SQLITE_MISUSE返回值。
如果SQLite从任何接口返回SQLite_MISUSE,这意味着应用程序编码错误,需要修复。请勿发货有时从标准返回SQLITE_MISUSE的应用程序SQLite接口,因为该应用程序包含潜在的严重错误。
(22)SQLITE_NOLFS
SQLITE_NOLFS错误可以在不支持的系统上返回当数据库增长到大于文件系统时的大文件可以处理。“NOLFS”代表“无大文件支持”。
(23)SQLITE_AUTH
当授权程序回调表示正在准备的SQL语句未经授权。
(24)SQLITE_FORMAT
SQLITE当前未使用SQLITE_FORMAT错误代码。
(25)SQLITE_RANGE
SQLITE_RANGE错误索引参数编号参数到其中一个sqlite3_绑定例程或其中一个中的列号sqlite3_列例程超出范围。
(26)SQLITE_NOTADB
尝试打开文件时,SQLITE_NOTADB错误指示正在打开的文件似乎不是SQLite数据库文件。
(27)SQLITE_注意事项
任何C/C++接口都不会返回SQLITE_NOTICE结果代码。然而,SQLITE_NOTICE(或者更确切地说,它的扩展错误代码)有时用作sqlite3_log()回调以表明正在发生异常操作。
(28)SQLITE_WARNING(SQLITE_警告)
任何C/C++接口都不会返回SQLITE_WARNING结果代码。然而,SQLITE_WARNING(或者更确切地说,它的扩展错误代码)有时用作sqlite3_log()回调表明不寻常且可能不明智的操作正在发生。
(100)SQLITE_ROW
返回的SQLITE_ROW结果代码sqlite3_step()指示另一行输出可用。
(101)SQLITE_DONE
SQLITE_DONE结果代码表示操作已完成。SQLITE_DONE结果代码通常被视为返回值从sqlite3_step()指示SQL语句已运行到完成。但SQLITE_DONE也可以通过其他多步返回接口,如sqlite3_backup_step().
(256)SQLITE_OK _ LOAD_永久
这个sqlite3_load_extension()接口加载延伸变成一个单独的数据库连接。默认行为是将该扩展数据库连接关闭时自动卸载。然而,如果扩展入口点返回SQLITE_OK_LOAD_PERMANENTLY则扩展仍然加载到进程地址中数据库连接关闭后的空格。换句话说的xDlClose方法sqlite3_vfs对象未被调用数据库连接关闭时扩展名。
SQLITE_OK_LOAD_PERMANENTLY返回代码对于可加载扩展注册新的VFSe(虚拟专用服务器)例如。
(257)SQLITE_ERROR_MISSING_COLLSEQ数据库
SQLITE_ERROR_MISSING_COLLSEQ结果代码表示SQL无法准备语句,因为名为的排序序列在该SQL语句中找不到。
有时当遇到此错误代码时sqlite3_prepare_v2()例程将把错误转换为SQLITE_ERROR_RETRY数据库然后重试以准备SQL语句使用不需要使用的其他查询计划未知的排序序列。
(261)SQLITE_BUSY_RECOVERY数据库
SQLITE_BUSY_RECOVERY错误代码是扩展错误代码对于SQLITE_BUSY数据库表示操作无法继续因为另一个进程正忙于恢复WAL模式数据库文件撞车之后。仅出现SQLITE_BUSY_RECOVERY错误代码在WAL模式数据库。
(262)SQLITE_LOCKED_SHAREDCACHE
SQLITE_LOCKED_SHAREDCACHE结果代码指示访问SQLite数据记录被另一个数据库连接阻止正在中使用相同的记录共享缓存模式当两个或多个数据库连接共享同一个缓存,其中一个连接是在修改该缓存中的记录的过程中,然后修改其他连接在修改过程中被阻止访问该数据为了防止读者看到损坏或部分损坏已完成更改。
(264)SQLITE_READONLY_RECOVERY数据库
SQLITE_READONLY_RECOVERY错误代码是扩展错误代码对于SQLITE_READONLY(SQLITE_只读)。SQLITE_READONLY_RECOVERY错误代码指示那是WAL模式无法打开数据库,因为数据库文件需要恢复,恢复需要写访问权限,但只有读取权限可用。
(266)SQLITE_IOERR_READ
SQLITE_IOERR_READ错误代码是扩展错误代码对于SQLITE_IOERR公司指示中的I/O错误变频调速系统层试图读取磁盘上的文件时。可能会导致此错误硬件故障或文件系统卸载文件打开时。
(267)SQLITE_CORRUPT_VTAB
SQLITE_CORRUPT_VTAB错误代码是扩展错误代码对于SQLITE_CORRUPT由使用虚拟表.A型虚拟表可以返回SQLITE_CORRUPT_VTAB以指示虚拟表中的内容已损坏。
(270)SQLITE_CATOPEN_NOTEMPDIR
不再使用SQLITE_CANTOPEN_NOTEMPDIR错误代码。
(275)SQLITE_CONSTRAINT_CHECK公司
SQLITE_CONSTRAINT_CHECK错误代码是扩展错误代码对于SQLITE_CONSTRAINT公司表明CHECK约束失败。
(279)SQLITE_AUTH_USER
SQLITE_AUTH_USER错误代码是扩展错误代码对于SQLITE_AUTH公司指示尝试对登录用户缺少足够授权的数据库。
(283)SQLITE_NOTICE_RECOVER_WAL
SQLITE_NOTICE_RECOVER_WAL结果代码为传递给的回调sqlite3_log()当WAL模式数据库文件已恢复。
(284)SQLITE_WARNING_AUTOINDEX
SQLITE_WARNING_AUTOINDEX结果代码为传递给的回调sqlite3_log()无论何时自动索引使用。这可以向应用程序设计者发出警告:数据库可能会从其他索引中受益。
(513)SQLITE_ERROR_RETRY
SQLITE_ERROR_RETRY在内部用于激发sqlite3_prepare_v2()(或用于创建准备好的语句的同级例程之一)再次尝试准备一条语句,但该语句因错误而失败上一次尝试。
(516)SQLITE_ABORT_ROLLBACK
SQLITE_ABORT_ROLLBACK错误代码是扩展错误代码对于SQLITE_ABORT公司指示SQL语句因以下原因而中止SQL语句首次启动时处于活动状态的事务已回滚。挂起的写入操作总是因此错误而失败发生回滚时。一回降将导致挂起的读取操作只有在正在滚动的事务中更改了模式时才会失败返回。
(517)SQLITE_BUSY_SNAPSHOT
SQLITE_BUSY_SNAPSHOT错误代码是扩展错误代码对于SQLITE_BUSY数据库发生在WAL模式数据库,当数据库连接尝试将读取事务提升为写入事务但发现另一个数据库连接已写入数据库,从而使之前的读取无效。
以下场景说明了SQLITE_BUSY_SNAPSHOT错误可能出现:
- 进程A启动数据库上的读取事务并执行一个或更多SELECT语句。流程A保持交易处于打开状态。
- 进程B更新数据库,更改以前读取的值过程A。
- 进程A现在尝试写入数据库。但过程A的观点数据库内容的在进程A读取数据库文件后修改了该文件。因此进程A获取SQLITE_BUSY_SNAPSHOT错误。
(518)SQLITE_LOCKED_VTAB
SQLITE核心不使用SQLITE_LOCKED_VTAB结果代码,但它可供扩展使用。虚拟表实现可以返回此结果代码以指示他们无法完成当前操作,因为其他线程或进程持有锁。
这个R-Tree扩展尝试时返回此结果代码在另一条准备好的语句正在读取时更新R-TreeR树。由于对R-Tree的任何更改,更新无法继续可能涉及节点的重新洗牌和重新平衡,这将中断读取游标,导致某些行重复,其他行重复略。
(520)SQLITE_READONLY_CANTLOCK
SQLITE_READONLY_CANTLOCK错误代码是扩展错误代码对于SQLITE_READONLY(SQLITE_只读)。SQLITE_READONLY_CANTLOCK错误代码指示该SQLite无法在WAL模式数据库因为与该数据库关联的共享内存文件是只读的。
(522)SQLITE_IOERR_SHORT_READ
SQLITE_IOERR_SHORT_READ错误代码是扩展错误代码对于SQLITE_IOERR公司指示中的读取尝试变频调速系统层无法获得请求的字节数。这可能是由于文件被截断。
(523)SQLITE_CORRUPT_SEQUENCE
SQLITE_CORRUPT_SEQUENCE结果代码意味着sqlitesequence表已损坏。sqlite_sequence表用于帮助实现自动更正功能。这个sqlite_sequence表应具有以下格式:
创建表sqlite_sequence(name,seq);
如果SQLite发现SQLite_sequence表有任何其他格式时,它返回SQLITE_CORRUPT_SEQUENCE错误。
(526)SQLITE_CATOPEN_ISDIR
SQLITE_CATOPEN_ISDIR错误代码是扩展错误代码对于SQLITE_CANTOPEN公司指示文件打开操作失败,因为该文件实际上是一个目录。
(531)SQLITE_CONSTRAINT_COMMITHOOK公司
SQLITE_CONSTRAINT_COMMITHOOK错误代码是一个扩展错误代码对于SQLITE_CONSTRAINT公司表示提交挂钩回调返回非零,因此导致SQL语句回滚。
(539)SQLITE_NOTICE_RECOVER_ROLLBACK
SQLITE_NOTICE_RECOVER_ROLLBACK结果代码为传递给的回调sqlite3_log()当热轴颈已回滚。
(769)SQLITE_ERROR_SNAPSHOT
尝试时可能会返回SQLITE_ERROR_SNAPSHOT结果代码在数据库的历史版本上启动读取事务通过使用sqlite3_snapshot_open()接口。如果历史快照不再可用,则读取事务将失败使用SQLITE_ERROR_SNAPSHOT。只有在以下情况下才可能出现此错误代码SQLite是用编译的-DSQLITE_ENABLE_SNAPSHOT公司.
(773)SQLITE_BUSY_TIMEOUT
SQLITE_BUSY_TIMEOUT错误代码指示阻塞Posix由于超时,VFS层中的通知文件锁定请求失败。阻止Posix公告锁仅可用作专用SQLite扩展,即使如此如果使用SQLite_EANBLE_SETLK_TIMEOUT编译SQLite,则支持compile-time选项。
(776)SQLITE_READONLY_ROLBACK
SQLITE_READONLY_ROLLBACK错误代码是扩展错误代码对于SQLITE_READONLY(SQLITE_只读)。SQLITE_READONLY_ROLLBACK错误代码指示无法打开数据库,因为它具有热轴颈那个需要回滚,但无法回滚,因为数据库是只读的。
(778)SQLITE_IOERR_WRITE
SQLITE_IOERR_WRITE错误代码是扩展错误代码对于SQLITE_IOERR公司指示中的I/O错误变频调速系统层试图写入磁盘上的文件时。可能会导致此错误硬件故障或文件系统卸载文件打开时。如果文件系统已满,因为为此有一个单独的错误代码(SQLITE_full)。
(779)SQLITE_CORRUPT_INDEX
SQLITE_CORRUPT_INDEX结果代码表示SQLITE检测到索引中缺少条目。这是一个特殊情况这个SQLITE_CORRUPT表明问题可能通过运行雷因德斯命令,假定没有其他命令数据库文件中的其他地方存在问题。
(782)SQLITE_CATOPEN_FULLPATH
SQLITE_CATOPEN_FULLPATH错误代码是扩展错误代码对于SQLITE_CANTOPEN公司指示文件打开操作失败,因为操作系统无法将文件名转换为完整路径名。
(787)SQLITE_CONSTRAINT_FOREIGNKEY公司
SQLITE_CONSTRAINT_FOREIGNKEY错误代码是一个扩展错误代码对于SQLITE_CONSTRAINT公司表示外键约束失败。
(1032)SQLITE_READONLY_DBMOVED数据库
SQLITE_READONLY_DBMOVED错误代码是扩展错误代码对于SQLITE_READONLY(SQLITE_只读)。SQLITE_READONLY_DBMOVED错误代码指示无法修改数据库,因为数据库文件已自打开数据库以来已移动,因此任何修改数据库的尝试如果进程崩溃,则可能导致数据库损坏,因为恢复日志将无法正确命名。
(1034)SQLITE_IOERR_FSYNC
SQLITE_IOERR_FSYNC错误代码是扩展错误代码对于SQLITE_IOERR公司指示中的I/O错误变频调速系统层尝试从操作系统中清除以前写入的内容和/或磁盘控制缓冲区和永久存储。换句话说,此代码表示unix中的fsync()系统调用有问题或窗口中的FlushFileBuffers()系统调用。
(1038)SQLITE_CONTOPEN_CONVPATH
SQLITE_CATOPEN_CONVPATH错误代码是扩展错误代码对于SQLITE_CANTOPEN公司仅Cygwin使用变频调速系统并表明尝试打开文件时,cygwin_convpath()系统调用失败。另请参见:SQLITE_IOERR_CONVPATH
(1043)SQLITE_CONSTRAINT_FUNCTION
SQLITE_CONSTRAINT_FUNCTION错误代码当前未使用通过SQLite核心。但是,可以使用此错误代码通过扩展函数。
(1288)SQLITE_READONLY_CANTINIT
SQLITE_READONLY_CANTINIT结果代码源自xShmMap方法的变频调速系统指示使用的共享内存区域WAL模式存在,但其内容不可靠且当前进程无法使用因为当前进程没有对共享的写权限内存区域。(WAL模式的共享内存区域通常是带有“-wal”后缀的文件映射到进程空间。如果当前进程没有该文件的写入权限,那么它无法写入共享内存。)
SQLite中的高级逻辑通常会截获错误代码并创建一个临时内存共享内存区域,以便当前进程至少可以读取数据库的内容。此结果代码不应到达应用程序接口层。
(1290)SQLITE_IOERR_DIR_FSYNC
SQLITE_IOERR_DIR_FSYNC错误代码是扩展错误代码对于SQLITE_IOERR公司指示中的I/O错误变频调速器层尝试在目录上调用fsync()时。unix变频调速系统尝试在创建或删除某些文件后将文件复制到fsync()目录确保这些文件仍会出现在以下文件系统中断电或系统崩溃。此错误代码表示存在问题试图执行该fsync()。
(1294)SQLITE_CONTOPEN_DIRTYWAL公司
此时不使用SQLITE_CATOPEN_DIRTYWAL结果代码。
(1299)SQLITE_CONSTRAINT_NOTNULL
SQLITE_CONSTRAINT_NOTNULL错误代码是一个扩展错误代码对于SQLITE_CONSTRAINT公司表示NOT NULL约束失败。
(1544)SQLITE_READONLY_DIRECTORY公司
SQLITE_READONLY_DIRECTORY结果代码指示数据库是只读的,因为进程没有创建权限与数据库位于同一目录中的日志文件,并创建日志文件是写入的先决条件。
(1546)SQLITE_ioer_TRUNCATE
SQLITE_IOERR_TRUNCATE错误代码是扩展错误代码对于SQLITE_IOERR公司指示中的I/O错误变频调速器层试图将文件截断为较小的大小时。
(1550)SQLITE_CATOPEN_SYMLINK
SQLITE_CATOPEN_SYMLINK结果代码由sqlite3_open()接口及其同级SQLITE_OPEN_NOFOLLOW(SQLITE_打开_关闭)标志,数据库文件为符号链接。
(1555)SQLITE_CONSTRAINT_PRIMARYKEY公司
SQLITE_CONSTRAINT_PRIMARYKEY错误代码是一个扩展错误代码对于SQL站点约束表示PRIMARY KEY约束失败。
(1802)SQLITE_IOERR_FSTAT
SQLITE_IOERR_FSTAT错误代码是扩展错误代码对于SQLITE_IOERR公司指示中的I/O错误变频调速系统层尝试按顺序对文件调用fstat()(或等效项)时以确定文件大小或访问权限等信息。
(1811)SQLITE_CONSTRAINT_TRIGGER公司
SQLITE_CONSTRAINT_TRIGGER错误代码是一个扩展错误代码对于SQLITE_CONSTRAINT公司表示RAISE功能在内部一触发激发,导致SQL语句中止。
(2058)SQLITE_IOERR_UNLOCK
SQLITE_IOERR_UNLOCK错误代码是扩展错误代码对于SQLITE_ioer(S)指示I/O错误在上的xUnlock方法中sqlite3_io_方法对象。
(2067)SQLITE_CONSTRAINT_UNIQUE公司
SQLITE_CONSTRAINT_UNIQUE错误代码是一个扩展错误代码对于SQLITE_CONSTRAINT公司表示UNIQUE约束失败。
(2314)SQLITE_IOERR_RDLOCK数据库
SQLITE_IOERR_RDLOCK错误代码是扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xLock方法中sqlite3_io_方法尝试时遇到对象获取读取锁。
(2323)SQLITE_CONSTRAINT_VTAB
当前未使用SQLITE_CONSTRAINT_VTAB错误代码通过SQLite核心。但是,可以使用此错误代码按应用程序定义虚拟表.
(2570)SQLITE_IOERR_DELETE
SQLITE_IOERR_DELETE错误代码是扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xDelete方法中sqlite3_vfs对象。
(2579)SQLITE_CONSTRAINT_ROWID
SQLITE_CONSTRAINT_ROWID错误代码是一个扩展错误代码对于SQLITE_CONSTRAINT公司表示罗伊德不是唯一的。
(2826)SQLITE_IOERR已锁定
不再使用SQLITE_IOERR_BLOCKED错误代码。
(2835)SQLITE_CONSTRAINT_PINNED公司
SQLITE_CONSTRAINT_PINNED错误代码是一个扩展错误代码对于SQLITE_CONSTRAINT公司表明UPDATE触发器尝试请删除在更新过程中更新的行。
(3082)SQLITE_IOERR_NOMEM数据库
SQLITE_IOERR_NOMEM错误代码有时由变频调速系统层,指示由于无法分配足够的内存。此错误代码通常是转换为SQLITE_NOME公司之前被SQLite的更高层返回到应用程序。
(3091)SQLITE_CONSTRAINT_DATATYPE
SQLITE_CONSTRAINT_DATATYPE错误代码是一个扩展错误代码对于SQLITE_CONSTRAINT公司指示尝试插入或更新存储与列的声明类型不一致的值在定义为STRICT的表中。
(3338)SQLITE_IOERR_ACCESS
SQLITE_IOERR_ACCESS错误代码是扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xAccess方法中sqlite3_vfs对象。
(3594)SQLITE_IOERR_CHECK保留锁定
SQLITE_IOERR_CHECKRESERVEDLOCK错误代码为一个扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xCheckReservedLock方法中sqlite3_io_方法对象。
(3850)SQLITE_ioer_LOCK
SQLITE_IOERR_LOCK错误代码是扩展错误代码对于SQLITE_IOERR公司指示中的I/O错误咨询文件锁定逻辑。通常SQLITE_IOERR_LOCK错误表示获取时出现问题一待定锁。但也可以表示其他锁定一些专用VFSe(虚拟专用服务器)在Mac上使用。
(4106)SQLITE_IOERR_CLOSE数据库
SQLITE_IOERR_CLOSE错误代码是扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xClose方法中sqlite3_io_方法对象。
(4362)SQLITE_IOERR_DIR_CLOSE
不再使用SQLITE_IOERR_DIR_CLOSE错误代码。
(4618)SQLITE_IOERR_SHMOPEN
SQLITE_IOERR_SHMOPEN错误代码是扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xShmMap方法中sqlite3_io_方法对象试图打开新的共享内存段时。
(4874)SQLITE_IOERR_SHMSIZE
SQLITE_IOERR_SHMSIZE错误代码是扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xShmMap方法中sqlite3_io_方法对象试图放大时“shm”文件作为的一部分WAL模式事务处理。此错误可能表明底层文件系统卷空间不足。
(5130)SQLITE_IOERR_SHMLOCK
不再使用SQLITE_IOERR_SHMLOCK错误代码。
(5386)SQLITE_IOERR_SHMMAP数据库
SQLITE_IOERR_SHMMAP错误代码是扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xShmMap方法中sqlite3_io_方法对象尝试将共享内存段映射到进程地址空间时。
(5642)SQLITE_IOERR_SEEK数据库
SQLITE_IOERR_SEEK错误代码是扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xRead或xWrite方法中sqlite3_io_方法对象在尝试查找文件描述符时发生读取或写入的文件。
(5898)SQLITE_ioer_DELETE_NOENT
SQLITE_IOERR_DELETE_NOENT错误代码是一个扩展错误代码对于SQLITE_IOERR公司表明上的xDelete方法sqlite3_vfs对象失败,因为要删除的文件不存在。
(6154)SQLITE_IOERR_MMAP
SQLITE_IOERR_MMAP错误代码是扩展错误代码对于SQLITE_IOERR公司指示I/O错误在上的xFetch或xUnfetch方法中sqlite3_io_方法对象尝试将数据库文件的一部分映射或取消映射到进程地址空间。
(6410)SQLITE_IOERR_GETTEPATH
SQLITE_IOERR_GETTEMPPATH错误代码是扩展错误代码对于SQLITE_IOERR公司表明变频调速器无法确定放置临时文件的合适目录。
(6666)SQLITE_IOERR_CONVPATH
SQLITE_IOERR_CONVPATH错误代码是扩展错误代码对于SQLITE_IOERR公司仅Cygwin使用变频调速系统并表明cygwin_conv_path()系统调用失败。另请参见:SQLITE_CATOPEN_CONVPATH
(6922)SQLITE_IOERR节点
SQLITE_IOERR_VNODE错误代码是保留使用的代码通过扩展。SQLite内核不使用它。
(7178)SQLITE_ioer_AUTH
SQLITE_IOERR_AUTH错误代码是保留使用的代码通过扩展。SQLite内核不使用它。
(7434)SQLITE_IOERR_BEGIN_ATOMIC公司
SQLITE_IOERR_BEGIN_ATOMIC错误代码指示报告的基础操作系统和错误SQLITE_FCNTL_BEGIN_ATOMIC_WRITE数据库文件控制。只有这样当SQLITE_ENABLE_ATOMIC_WRITE数据库已启用,并且数据库托管在支持原子写入的文件系统上。
(7690)SQLITE_IOERR_COMMIT_ATOMIC
SQLITE_IOERR_COMMIT_ATOMIC错误代码指示报告的基础操作系统和错误SQLITE_FCNTL_COMMIT_ATOMIC_WRITE数据库文件控制。只有这样当SQLITE_ENABLE_ATOMIC_WRITE数据库已启用,并且数据库托管在支持原子写入的文件系统上。
(7946)SQLITE_IOERR_ROLLBACK_ATOMIC数据库
SQLITE_IOERR_ROLLBACK_ATOMIC错误代码指示上报告了底层操作系统和错误SQLITE_FCNTL_回滚_ATOMIC_WRITE文件控制。只有这样当SQLITE_ENABLE_ATOMIC_WRITE数据库已启用,并且数据库托管在支持原子写入的文件系统上。
(8202)SQLITE_IOERR_DATA
SQLITE_IOERR_DATA错误代码是扩展错误代码对于SQLITE_IOERR公司仅由使用校验和VFS垫片以表明数据库文件页上的校验和不正确。
(8458)SQLITE_IOERR_CORRUPTFS
SQLITE_IOERR_CORRUPTFS错误代码是扩展错误代码对于SQLITE_IOERR公司仅由VFS用于指示查找或读取失败是由于请求不在文件边界内而不是普通的设备故障。这通常表示文件系统损坏。
此页面上次修改时间2023-09-14 14:42:56联合技术公司