在arm上测试sqlite3

本文介绍SQLite3数据库在ARM-Linux平台上的移植及测试过程。通过示例程序验证了数据库的基本操作功能,并展示了如何使用命令行工具进行数据库表的创建、数据插入与查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里以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, 0, &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 Jan 1 00:18 xyz.db
此时数据库文件xyz.db的大小为2K。自此,SQLite3数据库在Sitsang评估板上移植完成。测试结果表明数据库能够正常工作。
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值