1. centos下使用sqlite, 有两种方式
1.1 下载sqlite ,自己编译
地址:http://www.sqlite.org/sqlite-autoconf-3071502.tar.gz
解压后./configure & make & make install
如果出现libtool的错误,可能是因为版本的问题,把系统的libtool文件copy到解压后的目录即可
1.2 yum安装 yum install sqlite
通常会提示已经安装,因为QT或者python礼貌已经安装了
2. windows下的使用
一、SQLite下载
SQLite可以在SQLite 官网http://www.sqlite.org/download.html下载 sqlite-dll-win32-x86-3070600.zip(这个时候发现压缩包里只有dll和def文件。)
二、SQLite.lib生成
1、 将sqlite-dll-win32-x86-3070600.zip 下载到自己的本地电脑上以后,(假设存储地址:E:/test);
2、 打开LIB.EXE所在的目录,VC6.0下的LIB.EXE一般都存放在C:/Program Files/Microsoft Visual Studio/VC98/Bin下;
3、 打开“运行”—>”cmd”进入DOS下,使用CD 更改到LIB.EXE所在的当前路径,如:cd C:/Program Files/Microsoft Visual Studio/VC98/Bin
4、 在DOS下输入LIB /out:E:/test/sqlite3.lib /MACHINE:IX86 /DEF:E:/test/sqlite3.def
5、 回车之后,打开E:/test文件就会发现多了两个文件sqlite3.lib和sqlite3.exp
注:
1.
生成时可能会报错:
在C:\Program Files\Microsoft Visual Studio 8
搜索 MSPDB80
将其copy->C:\Program Files\Microsoft Visual Studio 8\VC\bin
生成.lib后,建立工程时要删除,要不然编译报错
例子:
#include "sqlite3.h"
#include <string.h>
void createdb();
void querydb();
int main()
{
createdb();
querydb();
return 0;
}
void createdb()
{
int ret;
sqlite3 *pdb = 0;
sqlite3_stmt *stmt = 0;
char *error = 0;
char *sql = "insert into table1 values('value11',:aaa)";
int index;
static const char *value = "asdfadsfasdfjasdfjaksdfaskjdfakdsfaksfja";
ret = sqlite3_open("db1.sdb", &pdb); //打开数据库,跟打开文本文件一样
if( ret != SQLITE_OK )
return;
ret = sqlite3_exec(pdb, "create table table1(col1 char(20), col2 BLOB)", 0,0, &error );
if( ret != SQLITE_OK )
return;
ret = sqlite3_prepare(pdb, sql,strlen(sql), &stmt, (const char**)&error);
if( ret != SQLITE_OK )
return;
index = sqlite3_bind_parameter_index(stmt, ":aaa");
ret = sqlite3_bind_blob(stmt, index, value, strlen((const char*)value), SQLITE_STATIC);
if( ret != SQLITE_OK )
return;
ret = sqlite3_step(stmt);
if( ret != SQLITE_DONE )
return;
sqlite3_close(pdb);
}
void querydb()
{
int ret;
sqlite3 *pdb = 0;
sqlite3_stmt *pstmt = 0;
char *error = 0;
char *sql = "select * from table1";
int len;
//int i;
char *name;
void *value;
ret = sqlite3_open("db1.sdb", &pdb);
if( ret != SQLITE_OK )
return;
ret = sqlite3_prepare(pdb, sql, strlen(sql), &pstmt, (const char**)&error);
if( ret != SQLITE_OK )
return;
while( 1 )
{
ret = sqlite3_step(pstmt);
if( ret != SQLITE_ROW )
break;
name = (char*)sqlite3_column_text(pstmt, 0);
value = (void*)sqlite3_column_blob(pstmt, 1);
len = sqlite3_column_bytes(pstmt,1 );
}
}
centos下的编译:
g++ sqlite3xx.cpp -L/usr/lib64/qt4/plugins/sqldrivers/ -lqsqlite -o sqlitetester