易截截图软件、单文件、免安装、纯绿色、仅160KB

关于SQLite 转帖


最近在项目中用到了SQLite。主要是客户端用到,这种小型内嵌数据库还是蛮实用的。
提起SQLite我不自觉的就想起了微软出的ACCESS。他们两个确实是有可比性的。曾经,小型网站数据库,ASP可以用到ACCESS。但是,PHP却是没有相对应的解决方案,自从SQLite的出现,给PHP提供了一个解决方案。
在客户端里面,我用到的数据保存方案有:CSV、INI、XML。其中XML是最强大的,但是可惜的是我用的解析器是Tinyxml,实用tinyxml的初衷就是简单,只用于配置,所以再复杂的事情就有些应付不过来。至少,逻辑上要复杂上许多。
我最近,看了迅雷,搜狗……一些软件的目录,都有一个sqlite3.dll。于是就去了解了下。貌似现在很多的im软件用这个做客户端数据库的也多起来了。看起来这个项目还是不错的。
SQLite有好几种版本,如果要想内嵌到应用程序当中去,那就要用sqlite-amalgamation这个版本了。它就是一个头文件,一个c的实现文件,这个文件里面有十多万行代码。我用VS2003编译的时候,编译器会提醒我,行数有些超长了-_-!!
C++里面对SQLite的包装类库里面,我觉得SOCI算是很不错的,这个项目不仅仅是对SQLite进行了包装,而且对其他数据库都有包装,像MySQL、PostgreSQL、Oracle这些数据库都支持,还支持ODBC。如果感兴趣可以看我转载的一篇博文:http://www.cppblog.com/tx7do/archive/2009/11/27/102054.html
“工欲善其事,必先利其器。”
既然是数据库,那我自然要有工具能够编辑数据库了。我找了找SQLite的数据库工具,一搜一大把。我试用了好多种,都不是很好用。最终才确定了SQLite Expert Professional,这款商业软件。当然,我很无耻的用了破解版。破解版在www.gougou.com里面就能搜索到。我是倾向于用开源软件的,但是很无奈的是,虽然相关的工具很多很多,但是就没有一款真正好用的。
我在用SQLite Expert创建数据库的时候,发现有一个选择编码的选项,但是很可惜的是全部都是UTF系的编码……我习惯性的选择了UTF8,这个也是它的默认选项。我创建了一个测试的数据库,随便弄了个表,打了几个字,然后保存。再用VS2003做了一个测试程序,结果读进来的是乱码。后来我把数据库文件放到一个路径里面有中文的路径下,结果它找不到文件,看来它完完全全的使用了UTF字符,包括对路径的处理。看起来,只能转码了。以下附上两个Windows下的转码的方法:
std::string UTF8ToAnsi( const std::stri


相关文档:

sqlite的学习笔记转载

前序:
Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。
这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为 unix 平台写代码。下面我所写的东西,虽然没有验证,但是我已尽 ......

[转]Java连接SQLite db数据库文件

Java连接SQLite数据库详解 下载SQLite数据库的JDBC 这里给出一个中文站点的URL: 设置环境变量: 将下载到的包解压后得到jar包 sqlitejdbc-v033-nested.jar 放到%JAVA_HOME%\lib 下,并且将其添加到classpath系统环境变量中,我的classpath系统环境变量现在为: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\li ......

Python sqlite3和单元测试

 
import os
import unittest # 包含单元测试模块
import sqlite3 as sqlite # 包含sqlite3模块
def get_db_path():
return "sqlite_testdb"
class TransactionTests(unittest.TestCase): # 单元测试第一步: 由TestCase派生类
def setUp(self): # 单元测试环境配置
......

sqlite常见问题

 (1) 如何建立自动增长字段?
简短回答:声明为 INTEGER PRIMARY KEY 的列将会自动增长。
长一点的答案: 如果你声明表的一列为 INTEGER PRIMARY KEY,那么, 每当你在该列上插入一NULL值时, NULL自动被转换为一个比该列中最大值大1的一个整数,如果表是空的, 将会是1。 (如果是最大可能的主键 9223372036854775807 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号