from:http://blog.163.com/18_2/blog/static/2174448200851045114653/
sqlite3在Linux下的安装和使用
在ubuntu里面直接使用命令:sudo apt-get install sqlite3 ,出现:
…………
…………
libsqlite3-0 (= 3.7.9-2ubuntu1) but 3.7.9-2ubuntu1.1 is to be installed……
…………
…………
我的解决方法依次执行下面三条命令:
1、sudo dpkg --force-depends --purge libsqlite3-0:i386
2、sudo apt-get -f install
3、sudo apt-get install sqlite3
Read more: How to Install sqlite 3 in Ubuntu | eHow http://www.ehow.com/how_8463512_install-sqlite-3-ubuntu.html#ixzz2U4yhrano
2、sudo apt-get -f install
3、sudo apt-get install sqlite3
Read more: How to Install sqlite 3 in Ubuntu | eHow http://www.ehow.com/how_8463512_install-sqlite-3-ubuntu.html#ixzz2U4yhrano
http://askubuntu.com/questions/230619/cannot-install-sqlite3
2008-06-10 16:51:14| 分类: sqlite |字号 订阅
一.本地sqlite3的安装和配置
下载sqlite3源码包
tar xvfz sqlite-src-3.3.5
cd sqlite-3.3.5
./configure –no-tcl
make
(如果在arm板上用需修改Makefile,在LIBS 项中加入 –L/usr/local/arm/3.3.2/lib 保存后退出.然后再make)
安装成功后生成文件将被复制到指定目录
再加入一个环境变量
vi /etc/profile
在export区域加入 sqlITE3_PATH=/usr/local/sqlite-3.3.5 保存后退出
source /etc/profile
有用文件分别为 $sqlITE3_PATH/include/sqlite3.h 头文件
$sqlITE3_PATH/bin/sqlite3 可执行文件
$sqlITE3_PATH/lib/libsqlite3.a
libsqlite3.la
libsqlite3.so -> libsqlite3.so.0.8.6
libsqlite3.so.0 -> libsqlite3.so.0.8.6
libsqlite3.so.0.8.6
在程序使用到数据库
#include <sqlite3.h>
在.pro文件中添加:
INCLUDEPATH +=$(sqlITE3_PATH)/include
DEPENDPATH +=$(sqlITE3_PATH)/include
LIBS +=-L$(sqlITE3_PATH)/lib
LIBS +=-lsqlite3
保存后退出
tmake hello.pro –o Makefile
make
二.程序的编写:
sqlite3 *db;
int rc = sqlite3_open(“data.db”,&db); //打开数据库data.db
if(rc!=sqlITE_OK);//打开失败
创建表rc = sqlite3_exec(db,”create table student(ID integer
primarykey,name nvarchar(32))”,NULL,&mrrmsg);
插入rc = sqlite3_exec(db,”insert into student values(‘3’,’Zhang San’)”,&mrrmsg);
修改rc = sqlite3_exec(db,”update student set name=’Li Si’ where ID=’4’”,&mrrmsg);
删除rc = sqlite3_exec(db,”delete * from student where name=’Wang Wu’”,&mrrmsg);
查询是重点
回调式查询 rc = sqlite3_exec(db,”select * from student where ID>2
and name<>’Zhang San’”,LoadInfo,&mrrmsg);
查询的结果通过LoadInfo函数来导出
typedef int(*sqlite3_callback)(void *,int char **,char **);
int LoadInfo(void *para,//db
int n_column,//记录的列数目
char** column_value,//查出值
char** column_name)//字段名称
{
int i;
printf(“记录含%d个字段\n”,n_column);
for(i=0;i<n_column;i++)
printf(“字段名:%s,字段值:%s \n”,column_name[i],column_value[]i);
return 0;
}
函数式查询 rc = sqlite_get_table(db,”select ID from student where ID>2
and name<>’Zhang San’”,&result,&nrow,&ncolumn,&errmsg);
char** result;
int nrow,ncolumn;
int rc;
char* errmsg=NULL;
rc = sqlite_get_table(db,&errmsg);
int i;
char id[10];
char name[10];
for(int i=1;i<=nrow;i++)
{
id[i]=result[i*2];
name[i]=result[i*2+1];
}