Sqlite 嵌入式数据库移植和使用
来源:互联网 发布:25n16aa数据 编辑:程序博客网 时间:2024/05/20 13:08
1. 源代码的获取
sqlite是一个功能强大、体积小运算速度快的嵌入式数据库,采用了全C语言封装,并提供了八十多个命令接口,可移植性强,使用方便。
下载地址:http://sqlite.org/download.html
sqlite源代码:sqlite-3.6.17.tar.gz
2. sqlite移植到x86 for linux
l 解压文件
//创建一个文件夹,将源代码放在这个文件夹中。
mkdir /work/sqlite
cp sqlite-3.6.17.tar.gz /work/sqlite
//解压文件
cd /work/sqlite
tar xvzf sqlite-3.6.17.tar.gz
l 配置
//建立x86目录
mkdir sqlite_x86
//打开文件
cd sqlite-3.6.17
//配置sqlite
./configure --prefix=/work/sqlite/sqlite_x86 --disable-tcl
l 编译
make
l 安装
make install
l 测试
当安装完成以后,安装文件会安装在/work/sqlite/sqlite_x86目录中,一种产生了,lib,include和bin三个文件夹,分别是库文件,头文件和可执行文件。
到这里是不是有点跃跃欲试了,是的,我们可以测试sqlite了,当文件安装后,我们可以直接通过安装好的sqlite3来实现。
cd sqlite_x86/bin
./sqlite3 test.db //打开或创建test.db数据库文件
create table test (id integer primary key, value text); //创建表格和字段名
insert into test (value) values('hxl'); //添加一条数据
insert into test (value) values('sqlite'); //添加一条数据
insert into test (value) values('test'); //添加一条数据
insert into test (value) values('for'); //添加一条数据
insert into test (value) values('linux'); //添加一条数据
//到此数据库基本家里就完成了,来看看数据库里面的文件吧
.mode col
.headers on //打印出数据库的表头
select * from test; //显示数据库中的所有文件
.exit //退出
3. sqlite移植到arm
l 配置
//建立x86目录
mkdir ../../sqlite_arm
//打开文件
cd ../../sqlite-3.6.17
//配置sqlite
./configure --prefix=/work/sqlite/sqlite_arm --disable-tcl —host=arm-linux
l 编译
make
l 安装
make install
l 测试
当安装完成以后,安装文件会安装在/work/sqlite/sqlite_x86目录中,一种产生了,lib,include和bin三个文件夹,分别是库文件,头文件和可执行文件。
将lib中的文件复制到开发板的lib中,现在编写一个C文件test.c来驱动它。
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for(i=0; i<argc; i++)
{
printf("%s = %s/n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("/n");
return 0;
}
int main(int argc, char **argv)
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
if( argc!=3 )
{
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT/n", argv[0]);
}
rc = sqlite3_open(argv[1], &db);
if( rc )
{
fprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db));
sqlite3_close(db);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s/n", zErrMsg);
}
sqlite3_close(db);
return 0;
}
上面的代码是sqlite官方的测试代码,虽然很简单但是也很强大,一般应用都够了,再了解一下sqlite的语法就可以实现强大的功能了,编译方法如下,在这里假设你已经安装好了arm-linux-gcc,我采用的是arm-linux-gcc-4.3.2,编译方法如下:
arm-linux-gcc -o test test.c -sqlite3 -L/work/sqlite/sqlite_arm/lib -I/work/sqlite/sqlite_arm/include
将数据库复制在当前文件夹,测试方法:
./test ./test test.db "select * from test;"
- Sqlite 嵌入式数据库移植和使用
- Sqlite 嵌入式数据库移植和使用
- 嵌入式 数据库 sqlite 移植和测试
- uclinux下的sqlite嵌入式数据库移植
- 收集嵌入式数据库Sqlite移植资料
- 嵌入式数据库Sqlite移植教程-转
- 嵌入式数据库Sqlite移植教程-转
- 嵌入式中的数据库sqlite移植步骤
- SQLite移植和使用
- 嵌入式数据库sqlite的使用
- 嵌入式数据库SQLite基础使用
- 嵌入式数据库SQLite的编译、安装和使用
- sqlite嵌入式移植
- sqlite嵌入式移植评估
- uclinux下的sqlite嵌入式数据库移植全攻略 [原创]
- 嵌入式数据库SQLite移植到S3C2410的方法
- 嵌入式数据库sqlite在2440上的移植
- 嵌入式数据库SQLite移植到S3C2410的方法
- 使用row_number函数查询连续7天出勤的员工
- OGNL —— 数据运转的催化剂
- Reading Notes on NS2(8)
- 溢出的经典文章
- JavaScript面向对象程序设计(6): 封装
- Sqlite 嵌入式数据库移植和使用
- JS识别IE不同版本
- 在Struts2中使用OGNL
- 微软CRM使用(视频教学
- PHP 程序员的调试技术
- JavaScript面向对象程序设计(7): 闭包
- 学习
- C/S与B/S架构
- JavaScript面向对象程序设计(8): 优雅的封装还是执行的效率?