使用VS2012编译SQLite,vs2012编译sqlite
最近工作的过程中需要用到SQLite,官网上主要提供的是编译好的版本,如果需要了解源码需要自己编译,这里将编译的相关方法分享出来,希望对大家有用!
1.下载SQLite
到SQLite官网http://www.sqlite.org/下载以下几个包:sqlite-src-3080900.zip、sqlite-shell-win32-x86-3080900.zip、sqlite-preprocessed-3080900.zip
2.创建工程
1)打开VS2012,新建一个Win32的动态库的空项目。
2)向工程添加文件
解压sqlite-src-3080900.zip,从Src目录下获取除test*.* tclsqlite.c,lempar.c的文件,ext\rtree目录下rtree.c rtree.h、sqlite3rtree.h,添加到工程中;解压sqlite-preprocessed-3080900.zip,获取keywordhash.h、opcodes.c 、opcodes.h、parse.c parse.h、sqlite3.h添加到工程中。
3)工程配置
解压sqlite-shell-win32-x86-3080900.zip,获取sqlite3.def,将sqlite3.def文件,放在和工程文件同级目录下,在连接器->输入->模块定义文件,输入sqlite3.def。
在C/C++->预处理->宏定义,设置下面宏定义:SQLITE_ENABLE_COLUMN_METADATA、SQLITE_CORE、SQLITE_ENABLE_RTREE
3.编译,OK
测试代码如下:
#include <iostream>
#include "sqlite3.h"
#include "sqliteInt.h"
using namespace std;
int main()
{
string strFileName = "../DataBase/sqliteTest.db";
sqlite3 *pDb = NULL;
int errCode;
errCode = sqlite3_open(strFileName.c_str(), &pDb);
if (SQLITE_OK != errCode)
{
cout<<"打开数据库失败!!"<<endl;
sqlite3_close(pDb);
return 0;
}
char *pzsErrMsg = NULL; //保存错误信息
//创建一个表,如果表存在,则不创建,将错误信息保存在pzsErrMsg中
char *sql = "CREATE TABLE MyFirstSql( \
ID INTEGER PRIMARY KEY, \
SensorIDINTEGER, \
SiteNumINTEGER, \
Time VARCHAR(12), \
SensorParamenterREAL);";
errCode = sqlite3_exec(pDb, sql, 0, 0, &pzsErrMsg);
if (SQLITE_OK != errCode)
{
cout<<pzsErrMsg<<endl;
}
sql = "INSERT INTO MyFirstSql(SensorDataVALUES(NULL, 1, 1, '201004111206', 18.9));";
errCode = sqlite3_exec(pDb, sql, 0, 0, &pzsErrMsg);
if (SQLITE_OK != errCode)
{
cout<<pzsErrMsg<<endl;
return 0;
}
return 1;
}
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。