微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在arm上测试sqlite3

这里以sqlite官方站点http://sqlite.org的quick start文档中的测试程序为例对移植到ARM-Linux上的sqlite3进行测试。该程序清单如下:
1 #include <stdio.h>
2 #include <sqlite3.h>
3
4 static int
5 callback(void *NotUsed,int argc,char **argv,char **azColName)
6 {
7 int i;
8
9 for (i = 0; i < argc; i++) {
10 printf("%s = %s/n",azColName[i],argv[i] ? argv[i] : "NULL");
11 }
12 printf("/n");
13 return 0;
14 }
15
16 int
17 main(int argc,char **argv)
18 {
19 sqlite3 *db;
20 char *zErrMsg = 0;
21 int rc;
22
23 if (argc != 3) {
24 fprintf(stderr,"Usage: %s DATABASE sql-STATEMENT/n",argv[0]);
25 exit(1);
26 }
27 rc = sqlite3_open(argv[1],&db);
28 if (rc) {
29 fprintf(stderr,"Can't open database: %s/n",sqlite3_errmsg(db));
30 sqlite3_close(db);
31 exit(1);
32 }
33 rc = sqlite3_exec(db,argv[2],callback,&zErrMsg);
34 if (rc != sqlITE_OK) {
35 fprintf(stderr,"sql error: %s/n",zErrMsg);
36 sqlite3_free(zErrMsg);
37 }
38 sqlite3_close(db);
39 return 0;
40 }
将此源程序保存为test.c,将test.c保存在bld目录下,然后,通过如下命令编译该程序:
arm-linux-gcc -o test test.c -L .libs -lsqlite3 -static
测试的话可以参看网页:http://www.sqlite.com.cn/MySqlite/6/349.Html
面是测试test程序的完整过程,需要注意的是由于命令较长,因此每一个命令都分成了多行输入,这样看起来要清楚一些:
[root@Sitsang2 root]$./test xyz.db "create table
> tbl0(name varchar(10),number smallint);"
[root@Sitsang2 root]$./test xyz.db "insert into
> tbl0 values('cyc',1);"
[root@Sitsang2 root]$./test xyz.db "insert into
> tbl0 values('dzy',2);"
[root@Sitsang2 root]$./test xyz.db "select *
> from tbl0;"
name = cyc
number = 1
name = dzy
number = 2
解释一下上面所用的测试命令:第一条命令在xyz.db这个数据库文件中创建了一个tbl0表,表中包含两个字段,字段name是一个变长字符串,字段number的类型为smallint;第二条命令向数据库的tbl0表中插入了一条记录(‘cyc’,1);第三条命令向数据库的tbl0表中插入了一条记录(‘dzy’,2);第四条命令则是查询表tbl0中的所有内容,与预期的一样,这条命令打印除了数据库中的两条刚插入的记录。由此可以得出结论,这几条命令确实都已经按照预期的目标工作了。
同时,在向数据库中插入上面所示的数据之后,可以看到数据库文件xyz.db大小已经发生了变化:
[root@Sitsang2 root]$ll -h xyz.db
-rw-r--r-- 1 root root 2.0k Jan1 00:18 xyz.db
此时数据库文件xyz.db的大小为2K。自此,sqlite3数据库在Sitsang评估板上移植完成。测试结果表明数据库能够正常工作。

原文地址:https://www.jb51.cc/sqlite/203185.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐