打开SQlite数据库

打开数据库:

在执行SQL数据库之前,首先要连接数据库(也可以称为打开数据库,因为SQlite数据库包含在单个操作系统文件中,一个文件对应一个数据库)。

可以使用sqlite3_open(),sqlite3_open_v2(),sqlite3Z_open16()函数打开数据库,这些函数的声明如下:

int sqlite3_open( 
	const char *filename,//数据库文件名 UTF-8 
	sqlite3 **ppDb //OUT:SQlite数据库句柄
	);

 

int sqlite3_open_v2( 
	const char *filename,	//数据库文件名 UTF-8
	sqlite3 **ppDb,			//out:数据库句柄 
	int flags,				//标志
	const char *zVfs		//要使用的VFS模块的名称
	);

int sqlite3_open16( 
	const void *filename,	//数据库文件名 (UTF-16)
	sqlite3 **ppDb			//OUT:SQLite数据库句柄
	);

一般情况下,推荐使用sqlite3_open_v2()这个函数,因为这是SQlite中最新和最强大的打开数据库的函数。与旧的sqlite3_open()相比,它有更多的选项,具有更强的能力。

不管选择哪个打开数据库函数,他们有共同的参数:filename与ppDb

 

参数filename:可以是操作系统文件,也可以是文本字符串":memory:",或者为空字符串,或空指针。

 如果使用":memory:",sqlite3_open_v2()将在内存中创建数据库,该数据库值存在于链接生存期间

如果文件名为空字符串或者null,sqlite3_open_v2()将打开临时磁盘文件,并在链接关闭时自动删除该文件。

如果是其他选项(操作系统文件),函数将尝试打开通过参数值指定的数据库文件,如果数据库文件不存在,sqlite3_open_v2()函数将根据flags参数决定是否创建数据库还是返回数据库不存在的错误信息,而其他函数则创建数据库。

参数*ppDb:Sqlite数据库句柄

参数flags:包括以下比特向量:

SQLITE_OPEN_READONLY:以只读模式打开数据库(数据库已存在,否则返回错误)

SQLITE_OPEN_READWRITE:以读写模式打开数据(数据库已存在,否则返回错误)

SQLITE_OPEN_CREATE:当数据库已存在,将其打开,当数据库不存在,则会创建

参数flags也会结合SQLITE_OPEN_NOMUTEX、SQLITE_OPEN_FULLMUTE、SQLITE_OPEN_SHAREDCACHE、SQLITE_OPEN_PRIVATECACHE标志,以进一步控制数据库句柄的事务行为。

参数*zFvs:允许调用去重写默认的操作系统接口sqlite3_vfs方法。

关闭数据库:

使用sqlite3_close()函数可以关闭数据库,函数声明如下:

int  sqlite3_close(sqlite3*)

要成功执行sqlite3_close()函数,必须完成于连接关联的所有准备查询。只要有一个查询仍未完成,sqlite3_close()都会返回一个SQLITE_BUSY兵显示错误信息"由于有未完成的语句,所以无法关闭连接"

【注意:使用sqlite3_close()关闭连接时,如果连接上有打开的事务,该事务将自动回滚。】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值