只读方式打开sqlite数据库

在软件项目中加入Sunisoft在线更新软件,用户监测软件版本更新时自动检测和下载新版本软件。软件功能比较简单,主要是对sqlite文件的读取。但是使用过程中发现只要连接上sqlite数据库,更新软件就会认为sqlite数据库文件已被修改,与服务器上的版本不符,需要更新该文件。通过md5比较,数据库被打开的时候并没有做任何修改。后来通过测试发现,只要文件被通过可写的方式打开,Sunisoft软件就
摘要由CSDN通过智能技术生成

在软件项目中加入Sunisoft在线更新软件,用户监测软件版本更新时自动检测和下载新版本软件。软件功能比较简单,主要是对sqlite文件的读取。但是使用过程中发现只要连接上sqlite数据库,更新软件就会认为sqlite数据库文件已被修改,与服务器上的版本不符,需要更新该文件。通过md5比较,数据库被打开的时候并没有做任何修改。后来通过测试发现,只要文件被通过可写的方式打开,Sunisoft软件就会认为文件已经被修改,即使打开之后不做写操作。

找到原因,接下来就容易解决了。由于软件不需要对sqlite文件进行些操作,主要都是查询操作,因此可以以只读方式连接sqlite数据库。sqlite3提供只读方式打开文件接口。

int sqlite3_open_v2(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb,         /* OUT: SQLite db handle */
  int flags,              /* Flags */
  const char *zVfs        /* Name of VFS module to use */
);

第一个参数为数据库文件路径,第二个参数是输出参数,为数据库操作指针地址。第三个参数为数据库访问方式,可通过此参数配置只读方式打开数据库,可以是SQLITE_OPEN_READONLY,SQLITE_OPEN_READWRITE和SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE中的一个,用于控制数据库的打开方式,可以和SQLITE_OPEN_NOMUTEX,SQLITE_OPEN_FULLMUTEX,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值