注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

多多的爹

 
 
 

日志

 
 

MFC到wxWidgets移植笔记(7)——数据库sqlite3  

2008-05-10 13:08:27|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在Windows平台上,最好的小型数据库,可能非Access莫属了。小巧,独立,数据库功能齐全,具备一定的安全性,真可谓是居家旅行,必备之数据库了。

可惜的是,Access只能适用于Windows平台。想通吃其它平台,我找了很久,最后发现了sqlite3。

sqlite3也是拥有独立的数据库文件,文件小巧,易使用,提供了标准的C函数库文件。能提供大多数数据库操作,由于他支持的数据库特性太多,所以他的网站上只列出不能支持的特性:

  • 外键约束(FOREIGN KEY constraints)
    外键约束会被解析但不会被执行。
  • 完整的触发器支持(Complete trigger support)
    现在有一些触发器的支持,但是还不完整。 缺少的特性包括 FOR EACH STATEMENT 触发器(现在所有的触发器都必须是 FOR EACH ROW ), 在表上的 INSTEAD OF 触发器(现在 INSTEAD OF 触发器只允许在视图上), 以及递归触发器——触发自身的触发器。
  • 完整的 ALTER TABLE 支持(Complete ALTER TABLE support)
    只支持 ALTER TABLE 命令的 RENAME TABLE 和 ADD COLUMN。 其他类型的 ALTER TABLE 操作如 DROP COLUMN,ALTER COLUMN,ADD CONSTRAINT 等等均被忽略。
  • 嵌套事务(Nested transactions)
    现在的实现只允许单一活动事务。
  • RIGHT 和 FULL OUTER JOIN(RIGHT and FULL OUTER JOIN)
    LEFT OUTER JOIN 已经实现,但还没有 RIGHT OUTER JOIN 和 FULL OUTER JOIN。
  • 可写视图(Writing to VIEWs)
    SQLite 中的视图是只读的。无法在一个视图上执行 DELETE,INSERT,UPDATE。 不过你可以创建一个试图在视图上 DELETE,INSERT,UPDATE 时触发的触发器,然后在触发器中完成你所需要的工作。
  • GRANT 和 REVOKE(GRANT and REVOKE)
    由于 SQLite 读和写的是一个普通的磁盘文件, 因此唯一可以获取的权限就是操作系统的标准的文件访问权限。 一般在客户机/服务器架构的关系型数据库系统上能找到的 GRANT 和 REVOKE 命令对于一个嵌入式的数据库引擎来说是没有意义的, 因此也就没有去实现。

其实上述问题,要么有其它办法解决(比如外键约束,可心用触发器实现),要么就用不上(比如视图),所以对于大多数需要跨平台的小型数据库的应用来说,sqlite3完全够用了。

官方的sqlite3只提供了一套C函数库文件(sqlite3.c,sqlite3.h,sqlite3ext.h),要想用可视化的操作方式,可以用第三方的Sqlite Developer。

  评论这张
 
阅读(27)| 评论(8)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017