make install
编译和安装完后,在 /root/sqlite-3.6.22/build/target 目录中会生成三个目标文件夹,分别是: bin 、 include 、 lib ,然后分别将 bin 下的文件下载到开发板的 /usr/bin 目录中, lib 下的所有文件下载到开发板的 /usr/lib 目录中即可。 include 目录下是 sqlite 的 C 语言 API 的头文件,编程时会用到。
5. 在开发板上测试移植的 sqlite 数据库。登录开发板的 Linux ,执行:
sqlite3 demo.db
sqlite3 是一个 sqlite 的命令行访问程序, demo.db 是新建的数据库的名字,必须以 db 作后缀。然后会看到下面的画面,说明移植成功。
三、测试
1 、新建数据库
[rootMrFeng]#sqlite3 test.db
sqlite version 3.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.org 的quick 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