sqlite3返回码
sqlite常量的定义:
const
SQLITE_OK = 0; 返回成功
SQLITE_ERROR = 1; SQL错误或错误的数据库
SQLITE_INTERNAL = 2; An internal logic error in SQLite
SQLITE_PERM = 3; 拒绝访问
SQLITE_ABORT = 4; 回调函数请求中断
SQLITE_BUSY = 5; 数据库文件被锁
SQLITE_LOCKED = 6; 数据库中的一个表被锁
SQLITE_NOMEM = 7; 内存分配失败
SQLITE_READONLY = 8; 试图对一个只读数据库进行写操作
SQLITE_INTERRUPT = 9; 由sqlite_interrupt()结束操作
SQLITE_IOERR = 10; 磁盘I/O发生错误
SQLITE_CORRUPT = 11; 数据库磁盘镜像畸形
SQLITE_NOTFOUND = 12; (Internal Only)表或记录不存在
SQLITE_FULL = 13; 数据库满插入失败
SQLITE_CANTOPEN = 14; 不能打开数据库文件
SQLITE_PROTOCOL = 15; 数据库锁定协议错误
SQLITE_EMPTY = 16; (Internal Only)数据库表为空
SQLITE_SCHEMA = 17; 数据库模式改变
SQLITE_TOOBIG = 18; 对一个表数据行过多
SQLITE_CONSTRAINT = 19; 由于约束冲突而中止
SQLITE_MISMATCH = 20; 数据类型不匹配
SQLITE_MISUSE = 21; 数据库错误使用
SQLITE_NOLFS = 22; 使用主机操作系统不支持的特性
SQLITE_AUTH = 23; 非法授权
SQLITE_FORMAT = 24; 辅助数据库格式错误
SQLITE_RANGE = 25; 2nd parameter to sqlite_bind out of range
SQLITE_NOTADB = 26; 打开的不是一个数据库文件
SQLITE_ROW = 100; sqlite_step() has another row ready
SQLITE_DONE = 101; sqlite_step() has finished executing
......
6,数据库运行函数sqlite3_exec()与单步运行函数sqliet3_step()的返回值
SQLITE_OK/0 成功执行
SQLITE_ERROR/1 SQL错误或数据库不存在
SQLITE_INTERNAL/2 SQLite内部逻辑错误(没有使用)
SQLITE_PERM/3 访问许可禁止
SQLITE_ABORT/4 回调函数请求中止
SQLITE_BUSY/5 数据库文件被锁定
SQLITE_LOCKED/6 数据库中的一表被锁定
SQLITE_NOMEM/7 malloc()分配堆失败
SQLITE_READONLY/8 企图写只读数据库
SQLITE_INTERRUPT/9 操作被sqlie3_interrupt()中止
SQLITE_IOERR/10 磁盘I/O错误
SQLITE_CORRUPT/11 数据库文件变形
SQLITE_NOTFOUND/12 表或纪录没有找到(没有使用)
SQLITE_FULL/13 插入失败因为数据库满
SQLITE_CANTOPEN/14 不能打开数据库文件
SQLITE_PROTOCOL/15 数据库锁协议错误
SQLITE_EMPTY/16 数据库是空的
SQLITE_SCHEMA/17 数据库模式改变
SQLITE_TOOBIG/18 单行数据过多(没有使用)
SQLITE_CONSTRAINT/19 因约束违背而中止
SQLITE_MISMATCH/20 数据类型不匹配
SQLITE_MISUSE/21 库使用方法不当
SQLITE_NOLFS/22 主机不支持库中操作系统功能
SQLITE_AUTH/23 认证禁止
SQLITE_FORMAT/24 附属数据库格式错误
SQLITE_RANGE/25 sqlite3_bind()第2个参数超出范围
SQLITE_NOTADB/26 打开非数据库文件
SQLITE_ROW/100 sqlite3_step()有另一行数据就绪
SQLITE_DONE/101 sqlite3_step()完成执行,已无数据
(5)多个应用程序或一个应用程序的多个实例可以同时访问同一个数据库文件吗?
多个进程可同时打开同一个数据库。多个进程可以同时进行SELECT 操作,但在任一时刻,只能有一个进程对数据库进行更改。
SQLite使用读、写锁控制对数据库的访问。(在Win95/98/ME等不支持读、 写锁的系统下,使用一个概率性的模拟来代替。)但使用时要注意: 如果数据库文件存放于一个NFS文件系统上,这种锁机制可能不能正常工作。 这是因为 fcntl() 文件锁在很多NFS上没有正确的实现。 在可能有多个进程同时访问数据库的时候,应该避免将数据库文件放到NFS上。 在Windows上,Microsoft的文档中说:如果使用 FAT 文件系统而没有运行 share.exe 守护进程,那么锁可能是不能正常使用的。那些在Windows上有很多经验的人告诉我: 对于网络文件,文件锁的实现有好多Bug,是靠不住的。如果他们说的是对的, 那么在两台或多台Windows机器间共享数据库可能会引起不期望的问题。
我们意识到,没有其它嵌入式的 SQL 数据库引擎能象 SQLite 这样处理如此多的并发。SQLite允许多个进程同时打开一个数据库, 同时读一个数据库。当有任何进程想要写时,它必须在更新过程中锁住数据库文件。 但那通常只是几毫秒的时间。其它进程只需等待写进程干完活结束。 典型地,其它嵌入式的SQL数据库引擎同时只允许一个进程连接到数据库。
但是,Client/Server数据库引擎(如 PostgreSQL, MySQL, 或 Oracle) 通常支持更高级别的并发,并且允许多个进程同时写同一个数据库。 这种机制在Client/Server结构的数据库上是可能的, 因为总是有一个单一的服务器进程很好地控制、协调对数据库的访问。 如果你的应用程序需要很多的并发,那么你应该考虑使用一个Client/Server 结构的数据库。但经验表明,很多应用程序需要的并发,往往比其设计者所想象的少得多。
当SQLite试图访问一个被其它进程锁住的文件时,缺省的行为是返回 SQLITE_BUSY。 可以在C代码中使用 sqlite3_busy_handler() 或 sqlite3_busy_timeout() API 函数调整这一行为。
sqlite3返回码相关推荐
- SQLite3源码学习(32) WAL日志详细分析
在前面2篇文章讲了有关WAL日志相关的一些基础知识: SQLite3源码学习(31) WAL日志的锁机制 SQLite3源码学习(30)WAL-Index文件中的hash表 接下来分析一下在WAL日志 ...
- 如何设计API返回码(错误码)?
前言 客户端请求API,通常需要通过返回码来判断API返回的结果是否符合预期,以及该如何处理返回的内容等. 相信很多同学都吃过返回码定义混乱的亏,有的API用返回码是int类型,有的是string类型 ...
- http请求的3位返回码简单解释
在http请求3位的返回码中,4开头的代表客户错误,5开头代表服务器端错误.接下来解释几个常见的错误返回码的含义. 404 解释: 404页面是客户端在浏览网页时,服务器无法正常提供信息,或是服务器无 ...
- 210312阶段三通过sqlite3源码安装sqlite3
目录 一.学习的知识点 1操作系统 1.1PC 1.2移动端 2数据库 2.1Linux下安装sqlite3 处理器 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 一.学习的知识点 1操作系 ...
- 巧用ActionFilter的AOP特性,为返回的数据增加返回码和消息
背景 对于处理接口返回值统一加密,过滤,特定值统一处理,统一返回等多种需求,net的拦截器前置拦截比较常用,例如:登录校验,参数格式校验等等.接下来介绍filter. filter过滤器实现 filt ...
- 关于SP一些响应码的API返回码及解析集合
在一些金融的行业(银行.证券.保险等),如果接触了一些中间件,比如长城.恒银.广电等一些厂商的设备,不同的厂商有不同的一些规范,在应用开发的过程中难免会和中间件的错误码打交道,这里总结一下.基本常用的 ...
- 微信公众号每次调用接口正确或错误的返回码
原文连接:https://blog.csdn.net/pansanday/article/details/65448868 -------------------------------------- ...
- 搭建网站常见返回码40X 50X等错误的原因及解决方案
大家在搭建网站时经常会遇到各类问题, 其中最常见的就是各类 40X 50X 报错, 这里 简单介绍一下各类报错的意义以及解决方法.在介绍报错前,先简单介绍下 http 协议的常 见返回码,这些返回码可 ...
- java 全局返回码设计_服务返回码的设计
服务返回码的设计 服务的返回码指示服务正常返回结果或是执行出现异常. 最简单的设计 返回码只有两个:成功,服务正常返回:失败,服务执行出现异常. 实际情况下,返回码只有成功和失败可能不能满足需求. 程 ...
- Shell组件的返回码,0为成功,其他为失败.
Shell的返回码 Shell每一行脚本都有执行返回码,返回码0为成功,其他为失败. Shell脚本的返回码0为成功,其他为失败. 可使用exit命令来设置返回码.函数可使用return设置可使用ec ...
最新文章
- HGE引擎适用于MFC的修改
- django开发_七牛云图片管理
- vector理解一波~~~
- AD 中快速查找隐藏NC元器件方法
- 桌面改成d盘如何改回去 修改注册表可以如何生效
- ps 毛发 边缘,抠图技巧,抠图后头发边缘的颜色怎处理
- GPU共享内存小结---pycuda
- 计算机中基本磁盘分为几个区,电脑硬盘分几个区最好?电脑硬盘分区教程
- 李飞飞在谷歌开发者大会宣布谷歌AI中国中心正式成立
- 如何快速下载CNCF Logos-收藏
- ccs中c语言定义布尔常量,ccs库里面有变量的定义,我在添加了头文件后编译显示没有定义变量呢...
- 【天嵌使用教程】嵌入式主板VS2008开发windows C#基本流程
- checkpoint NGFW VM安装
- opencv学习之(三)-LBP算法的研究及其实现
- 求助:matlab报错:位置 2 处的索引超出数组边界(1)
- php 有哪些 SAPI
- 求两个整型数的中间值
- 海尔燃气热水器经常不能点火的简单维修
- Mapper.xml中遇到大于号小于号问题解决方案
- iheartradio android,最牛电台iHeartRadio