当前位置:数据库 > SQLite >>

只读方式打开sqlite数据库

只读方式打开sqlite数据库
 
在软件项目中加入Sunisoft在线更新软件,用户监测软件版本更新时自动检测和下载新版本软件。软件功能比较简单,主要是对sqlite文件的读取。但是使用过程中发现只要连接上sqlite数据库,更新软件就会认为sqlite数据库文件已被修改,与服务器上的版本不符,需要更新该文件。
  www.zzzyk.com  
通过md5比较,数据库被打开的时候并没有做任何修改。后来通过测试发现,只要文件被通过可写的方式打开,Sunisoft软件就会认为文件已经被修改,即使打开之后不做写操作。
找到原因,接下来就容易解决了。由于软件不需要对sqlite文件进行些操作,主要都是查询操作,因此可以以只读方式连接sqlite数据库。sqlite3提供只读方式打开文件接口。
 
[cpp] 
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, SQLITE_OPEN_SHAREDCACHE,以及SQLITE_OPEN_PRIVATECACHE结合使用。第四个参数zVfs允许客户应用程序命名一个虚拟文件系统(Virtual File System)模块,用来与数据库连接。VFS作为SQlite library和底层存储系统(如某个文件系统)之间的一个抽象层,通常客户应用程序可以简单的给该参数传递一个NULL指针,以使用默认的VFS模块。
 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,