linux内核数据库sqlite3的移植和简单操作
来源:互联网 发布:骷髅骨架软件 编辑:程序博客网 时间:2024/05/21 06:14
零配置一无需安装和管理配置;
储存在单一磁盘文件中的一个完整的数据库;
数据库文件可以在不同字节顺序的机器间自由共享;
支持数据库大小至2TB;
足够小,全部源码大致3万行c代码,250KB;
比目前流行的大多数数据库对数据的操作要快;
这个数据库操作比较简单,首先要安装数据库:
这个很简单,在http://www.sqlite.org/download.html这个sqlite主页的下载目录中找到对应的linux版本。下载完成后解压,执行里面的
configure。如图:
执行完之后要执行 sudo make && make install
等待一段时间就可以安装完成。
完成以后看一下我们sqlite3的执行文件的路径在哪里如图:
在/usr/local/bin目录里。
为了以后的方便,可以将该目录加入到环境变量里,先打开 sudo vim /environment 将路径加入到这里,如何将sqlite3 移植到开发板上呢?
1、去掉/root/sqlite3.3.6目录下的sqlite3的调示信息:(俗称瘦身)
#arm-linux-strip sqlite3
2、将sqlite3下载到开发板的/usr/bin目录:
在PC机的目录/usr/lib 中找到libsqlite3.so.0、libsqlite3.so.0.8.6这两个库文件,去掉调示信息后把它们复制到开发板的/usr/lib目录下:
arm-linux-strip libsqlite3.so.0 (/home/linux/sqlite/lib)
arm-linux-strip libsqlite3.so.0.8.6 (/home/linux/sqlite/lib)
cp –arf libsqlite3.so.0 libsqlite3.so.0.8.6 /usr/lib 加上arf的目的是将源库拷贝,千万别只拷贝个链接,那么就悲剧了。。。
经过以上步骤,开发板上就已经有了sqlite数据库。
sqlite的一些基本操作可以在网上找一下,SQL语句都是通用的,所以比较重要的是sqlite3特供的一些操作数据库的接口:
int sqlite3_open(char *path, sqlite3 **db);
功能:打开sqlite数据库
path: 数据库文件路径
db: 指向sqlite句柄的指针
返回值:成功返回0,失败返回错误码(非零值)
int sqlite3_close(sqlite3 *db);
功能:关闭sqlite数据库
返回值:成功返回0,失败返回错误码
const char *sqlite3_errmg(sqlite3 *db);
返回值:返回错误信息
gcc -o test test.c -lsqlite3
功能:每找到一条记录自动执行一次回调函数
para:传递给回调函数的参数
f_num:记录中包含的字段数目
f_value:包含每个字段值的指针数组
f_name:包含每个字段名称的指针数组
返回值:成功返回0,失败返回-1
int sqlite3_exec(sqlite3 *db, const char *sql, sqlite3_callback callback, void *, char **errmsg);
功能:执行SQL操作
db:数据库句柄
sql:SQL语句
callback:回调函数
errmsg:错误信息指针的地址
返回值:成功返回0,失败返回错误码
例如:定义一个回调函数,打印记录中所有字段的名称和值
int callback(void *para, intf_num, char **f_value, char **f_name){ int i; printf(“*****************************\n”); for (i=0; i<f_num; i++) { printf(“%s : %s\n”, f_name[i], f_value[i]); } return 0;}
sqlite3 *db;char *errmsg; ……if (sqlite3_exec(db, “select * from table”, callback, NULL, &errmsg) != SQLITE_OK){ printf(“error : %s\n”, errmsg); exit(-1); } ……
函数参数:
db:数据库句柄
sql:SQL语句
resultp:用来指向sql执行结果的指针
nrow:满足条件的记录的数目
ncolumn:每条记录包含的字段数目
errmsg:错误信息指针的地址
返回值:成功返回0,失败返回错误码
sqlite3 *db;char *errmsg,**resultp;int nrow, ncolumn, i, j, index; ……if (sqlite3_exec(db, “select * from table”, &resultp, &nrow, &ncolumn, &errmsg) != SQLITE_OK){ printf(“error : %s\n”, errmsg); exit(-1); }index = ncolumn; // 第一条记录的第一个字段的下标 for (i=0; i<nrow; i++){ for (j=0; j<ncolumn; j++) { printf(“%s : %s\n”, resultp[j], resultp[index++]); }}
有了这几个函数,数据库的操作就基本上OK了
- linux内核数据库sqlite3的移植和简单操作
- linux内核数据库sqlite3的移植和简单操作
- linux内核数据库sqlite3的移植和简单操作
- linux内核数据库sqlite3的移植和简单操作
- linux学习:sqlite3简单数据库查询操作
- sqlite3数据库的移植
- ios sqlite3.0数据库的简单操作
- Linux下Sqlite3数据库的基本操作
- sqlite3嵌入式数据库的移植
- 关于数据库的介绍和操作 -- sqlite3
- SQLite3数据库的操作
- 开源SQL数据库SQlite3的移植和使用心得
- 开源SQL数据库SQlite3的移植和使用心得
- sqlite3 嵌入式数据库 arm+linux 移植
- linux 开发板移植sqlite3数据库
- SQLite3嵌入式数据库arm+linux移植
- Iphone——使用SQLite3进行简单的数据库操作
- 嵌入式开发中sqlite3数据库的简单操作
- 24点问题算法
- Cocos2dx3.0 疑难解答系列 (五)ClippingNode 在小米等手机,出现白屏,显示不正常的现象
- Oracle数据库中BLOB字段的介绍
- scoket入门说明
- [Python]Input/Output and str Formatting
- linux内核数据库sqlite3的移植和简单操作
- 电影冷知识
- STM32学习笔记(串口、IAP)
- ie6、7、8、9单独hack兼容写法
- Android中如何设置RadioButton在文字的右边
- UVA - 11214(迭代加深)
- 使用vs2008实现C语言对Python3的扩展
- Android_ViewStub
- java文件操作大全