sqlite3在mini2440上的移植

前端之家收集整理的这篇文章主要介绍了sqlite3在mini2440上的移植前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

开发环境:

Mini2440linux_2.6.32.2内核,

ubuntu9.10arm-linux-gcc-4.3.2

http://www.sqlite.org/上下载sqlite源代sqlite-3.6.22.tar.gz

二、移植步骤

1.解压数据库文件并进入解压后的目录,如下:

tar -zxvf sqlite-3.6.22.tar.gz

cd sqlite-3.6.22

2.创建一个目录build并进入该目录,用于在这个目录中进行交叉编译,如下:

mkdir build

cd build

3.目录中运行sqlite-3.6.22中的configure脚本生成Makefile文件,如下:

../configure --host=arm-linux --prefix=/root/sqlite-3.6.22/build/target

选项host指定的是用arm交叉编译器进行编译

prefix后面的路径是到时候编译安装后目标存放的目录,你可以任意设置

4.执行makemake install命令,如下:

make

make install

编译和安装完后,在/root/sqlite-3.6.22/build/target目录中会生成三个目标文件夹,分别是:binincludelib,然后分别将下的文件下载到开发板的/usr/bin目录中,下的所有文件下载到开发板的/usr/lib目录中即可。目录下是C语言API的头文件,编程时会用到。

5.在开发板上测试移植的数据库登录开发板的Linux,执行:

sqlite3 demo.db

sqlite3是一个的命令行访问程序,demo.db是新建的数据库的名字,必须以db作后缀。然后会看到下面的画面,说明移植成功。

三、测试
1、新建数据库
[rootMrFeng]#sqlite3 test.db
sqlite version3.6.18
Enter ".help" for instructions
Enter sql statements terminated with a ";"
sqlite> create table film (number,name);
sqlite> insert into film values (1,'aaa');
sqlite> insert into film values (2,'bbb');
sqlite> select * from film;
1|aaa
2|bbb
sqlite>.quit
[rootMrFeng]#
蓝色部分为输入。
2、测试程序
这里以sqlite官方站点http://sqlite.orgquick start文档中的测试程序为例对移植到ARM-Linux上的sqlite3进行测试。该程序清单如下:
//test_sqlite.c

#include <stdlib.h>

#include <stdio.h>

#include <sqlite3.h>

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]);

}

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,&zErrMsg);

if( rc!=sqlITE_OK )

{

fprintf(stderr,"sql error: %s\n",zErrMsg);

}

sqlite3_close(db);

return 0;

}

使用如下命令编译测试程序:

交叉编译时采用arm-linux-gcc -I /……(安装路径)/include -L/……(安装路径)/lib -o target src -lsqlite3

arm-linux-gcc -o test_sqlite test_sqlite.c -lsqlite3 -L /opt/FriendlyARM/mini2440/sqlite-3.7.3/build/lib/ -I /opt/FriendlyARM/mini2440/sqlite-3.7.3/build/include/


3、在上面新建的数据库目录下测试:
[rootMrFeng]#./test_sqlite test.db "select * from film"
number = 1
name = aaa

number = 2
name = bbb

[rootMrFeng]#

1)
创建数据库文件:
>sqlite3 test.db 回车
生成了一个test.db在d盘。
这样同时也sqlite3挂上了这个test.db
2)
用.help可以看看有什么命令
>.help 回车即可
3)可以在这里直接输入sql语句创建表格 用;结束,然后回车就可以看到了
4)看看有创建了多少表
>.tables
5)看表结构
>.schema 表名
6)看看目前挂的数据库
>.database
7)如果要把查询输出文件
>.output 文件
> 查询语句;
查询结果就输出到了文件c:\query.txt

查询结果用屏幕输出
>.output stdout

8)把表结构输出,同时索引也会输出 .dump 表名 9)退出 >.exit 或者.quit

猜你在找的Sqlite相关文章