创建sqlite 的vs2008 工程
近来因为工作需要加入sqlite 处理数据,下载了sqlite3.6.22(amalgamation 版本),又想自己动手编译出来想动态链接就动态,想静态链接也可以,于是有了这篇文章,有意思的是之前也试过编译Sqlite,但没成功,不了了之,可能近来要过年了
跟
RP有关吧:)。
1 首先创建vs2008的一个空DLL工程;
2 将sqlite3.c文件添加到工程,不需要sqlite3.h头文件,sqlite3.c已经包含了头文件的接口跟数据结构。
3. 最重要的一步,将编译选项里的"编译成C++"改为“编译成C”,我在Google现成的sqlite vs工程发现许多人都因为那些烦人的类型没定义或者不匹配崩溃,修改这个选项后就不需要修改代码了。
4. sqlite网站提供一个Windows的编译库,我没用到那个DLL,但那个sqlite3.def却可以用来声明导出函数,比自己去导出省力,所以也添加进工程。
5 还有一个编译宏,SQLITE_ENABLE_COLUMN_METADATA,如果遇到sqlite3_column_database_name**()函数没定义,那就是提醒要加进这个宏了,我是在工程"属性"框------> C++ ------->Preprocessor-------->Preprocessor Definition添加的,当然也可以在其他地方添加,
但以我的想法,在这里添加不需要改动代码,而且以后sqlite版本升级,只需要在工程目录里替换sqlite3.c 和sqlite3.def,一劳永逸, 希望如此吧!
6 添加了一个版本信息,常用VC的肯定知道,版本升级就直接在sqlite_version.rc里面修改版本号就是了。
上传了一份到CSDN,不知道CSDN到底在哪里支持附件上传 :)
http://download.csdn.net/source/2022243
相关文档:
本文转载自 http://www.tntserver.cn/article.asp?id=41
今天遇到个问题.
首先插入一个DataTime格式的数据:
string sql="insert into [table] (date_time) values('" + date_time.ToString() + "'";
执行如上命令.插入没有报告错误.
但是,我又用一条命令读取时:
string sql="select * from [table];
.....
IDataRea ......
1、.back ?DB? FILE 备份DB(默认为main)到文件
2、.bail ON|OFF 遇到一个错误扣停止,该值默认为OFF
3、.databases 列举附加到数据库的数据库名和文件名
4、.dump ?TABLE? ... 用SQL文本格式列举数据库,如果指定TABLE,仅仅列举匹配的表,LIKE类型TABLE
5、.echo ON|OFF 设置echo的状态 ......
可以接着上一步操作,直接向DOS窗口输入.help命令来查看SQLite的所有命令行及解释如下:
F:\>sqlite3
SQLite version 3.6.16
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .help
也可以ctrl+c结束命令,想DOS窗口 输入sqlite3执行后再输入.help命令如下:
F:\>sqli ......
backup ?DB? FILE 备份数据库到文件,默认备份的是main数据库,如果不附加数据库,test.db文件中默认的只有main数据库。 命令操作举例:
sqlite> .backup mydb.bak
sqlite>
此时可以再F盘看到mydb.bak文件,用记事本打开虽然是乱码,但可窥见一斑。
.restore ?DB? FILE 从备份文件还原数据和.backup相对应. 接上 ......
dbAccess.js
import System.Data; // we import our data class
import Mono.Data.SqliteClient; // we import our sqlite client
class dbAccess {
// variables for basic query access
private var connection : String;
private var dbcon : IDbConnection;
private ......