Sqlite真是好东西啊
这两天用他做了个事件记录模块。发现它真不错,轻量级的,而且功能还挺全的。 是的,俺们产品用了很久了,好用,开源,跨平台,比痿软的玩意好多了。 好东西,LZ可以讲讲如何移植,怎么应用。 做个轻量级的应用不错,但是用在ouravr这样的级别上,阿莫宁愿跳河。 以前做过测试,Sqlite查询性能还是很好的,但是写入性能不高,不适合大量频繁改写的场合。由于开放性好,适合替代MS的Access 这玩意本来就是小型轻量级数据库,尤其适合嵌入式场合,对功能性能过多苛求是不恰当的。至于做网站,你至少也得用个mysql吧,要不然都不好意思跟人打招呼。 armecos 这个家伙广告做的太凶了,有点让人厌。 北京有家搞电力的,做的通信管理机的参数是通过Sqlite存储的。 给你推荐的更nb的数据库bdb,就是berkeley db,现在已经被oracle收购了,他是开源的,不过是支持gpl的,svn的后端存储好像就是基于这个的。适合你的应用。 提供点小技巧
Sqlite不支持数据库文件放入中文路径,可用如下办法解决
char *unicodeToUtf8(const WCHAR *zWideFilename){
int nByte;
char *zFilename;
nByte = WideCharToMultiByte(CP_UTF8, 0, zWideFilename, -1, 0, 0, 0, 0);
zFilename = (char*)malloc( nByte );
if( zFilename==0 ){
return 0;
}
nByte = WideCharToMultiByte(CP_UTF8, 0, zWideFilename, -1, zFilename, nByte,
0, 0);
if( nByte == 0 ){
free(zFilename);
zFilename = 0;
}
return zFilename;
}
WCHAR *mbcsToUnicode(const char *zFilename){
int nByte;
WCHAR *zMbcsFilename;
int codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;
nByte = MultiByteToWideChar(codepage, 0, zFilename, -1, NULL,0)*sizeof(WCHAR);
zMbcsFilename = (WCHAR*)malloc( nByte*sizeof(zMbcsFilename) );
if( zMbcsFilename==0 ){
return 0;
}
nByte = MultiByteToWideChar(codepage, 0, zFilename, -1, zMbcsFilename, nByte);
if( nByte==0 ){
free(zMbcsFilename);
zMbcsFilename = 0;
}
return zMbcsFilename;
}
char szPath = "D:\\Project\\Test\\wwtest\\DBTest\\DBTest\\我的数据库\\pic.db";
char *pPath;
WCHAR *wcPath;
wcPath = mbcsToUnicode(szPath);
pPath = unicodeToUtf8(wcPath);
sqlite3_open(pPath, &db); 是个好东西,本地数据库,速度还可以。 不错,这个满有意思的 mark mark 用 FIREBIRD吧
更厉害,单机,嵌入,网络 都没问题。 回复【15楼】wxws
用 firebird吧
更厉害,单机,嵌入,网络 都没问题。
-----------------------------------------------------------------------
sqlite和firebird比
这断时间试了sqlite数据库
sqlite和FB比,在单机上可解决三大问题:
一:突然停电或系统突然重启动导至数据损坏。sqlite对这方面很大程度上避免这个问题方面做得比较好。
二:加密功能,不用担心数据被别人复制到别的地方打开。而FB只要能复制到别的地方,随便可以打开。
三:频烦的插入删除,更新数据,不会导至数据数据库很快增长。FB数据库快速度增长是容易导至数据库损坏的原因。
这三个问题,是导至一个软件是否长期使用时的可靠性问题。
我使用了各种办法想让sqlite数据库出现损坏(在操作数据库时用突然断电,强制杀死进程,重新启动等等),都没有办到。而FB这样折腾一会数据库文件准坏,且无法修复。
sqlite缺点就是速度上比不上FB快。当然如果FB用的服务方式,还是很可靠的,可是,这样麻烦,小用户用这个也没有必要。
使用了三年FB,看来要换一下了。 mark mark mark 顶。。。。 mark linux数据库 有没有sqlite用在stm32的uclinux上的实例? 有没有单片机这样的资源也可以用的啊。我现在同事写的上位机程序用的就是这个。
页:
[1]