sqlite数据库在linux下安装,配置,移植,使用,QT调用

sqlite数据库在linux下安装,配置,移植,使用,QT调用,第1张

概述一,安装编译,移植 1.首先下载sqlite源码包,sqlite-autoconf-3080403.gz 下载地址:http://www.sqlite.org/download.html 2.解压 # tar zxvf sqlite-autoconf-3080403.gz # cd sqlite-autoconf-3080403 3.新建两个文件夹用于编译不同版本 # mkdir sqlite-x

一,安装编译,移植

1.首先下载sqlite源码包,sqlite-autoconf-3080403.gz

下载地址:http://www.sqlite.org/download.HTML

2.解压

# tar zxvf sqlite-autoconf-3080403.gz 

# cd sqlite-autoconf-3080403

3.新建两个文件夹用于编译不同版本
# mkdir sqlite-x86 sqlite-arm

4.先编译电脑版
# cd sqlite-x86/
# ../configure --prefix=/usr/local
# make
# make install
# ldconfig

由于库安装的路径可能不在系统的默认路径上,而引起出现”sqlite header and source version mismatch“这个错误,所以用ldconfig命令来解决。

如果不成功可以采用以下方法

解决方法:将安装目录/usr/local/lib里面的libsqlite3.so.0和libsqlite3.so.0.8.6复制到/usr/lib/i386-linux-gnu,替换原有文件。


检验是否安装成功

# sqlite3 -version

出现版本号就是已经成功,如下
# sqlite3 -version3.8.4.3 2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3

5.编译ARM版
# cd ../sqlite-arm/
# ../configure CC=arm-linux-gcc-4.5.1 --host=arm-linux --prefix=/usr/local/arm/target

# make
# make install

经过上步所得到的文件已经可以放到ARM板上使用的了,但为了节省ARM板的存储空间,我们先对该文件瘦身,去掉没用的调试信息

# arm-linux-strip /usr/local/arm/target/lib/libsqlite3.so.0.8.6
# arm-linux-strip /usr/local/arm/target/lib/libsqlite3.so
# arm-linux-strip /usr/local/arm/target/bin/sqlite3 
把bin/sqlite3拷贝到ARM板上的根目录/bin下,把/lib下的libsqlite3.so.0.8.6 libsqlite3.so libsqlite3.so.0 拷贝到ARM板根目录/lib目录下。

测试方法也是一样

# sqlite3 -version
出现版本号就是已经成功了。


二,使用

PC和ARM方法一样

1.创建数据库,student.db

# sqlite3 student.db

已经存在则打开,还没存在就会创建并打开

打开后出现

sqlite version 3.8.4.3 2014-04-03 16:53:12Enter ".help" for usage hints.

使用 .help 查看帮助, .quit退出

sql的指令格式

所有的sql指令都是以分号(;)结尾的。如果遇到两个减号(--)则代表注解,sqlite3会略过去。

2.建立表

sqlite> create table student(ID,name,gender,age);

这里在数据库student.db里创建了一个表,名为student的表,包含元素,ID,age, sqlite可以储存任何东西:文字、数字、大量文字,不用标识输入类型,它会在自动转换。这是它与其他数据库的一个很大区别。

语法为

      createtabletable_name(fIEld1,fIEld2,fIEld3,...);  

table_name是资料表的名称,fIEldx则是字段的名字。

2. 建立索引

如果资料表有相当多的资料,我们便会建立索引来加快速度。

这里例如以ID为索引

sqlite> create index stu_ID on student(ID);
这里创建了一个stu_ID的索引,它为表student中的ID作为索引

这个指令的语法为create index index_name on table_name(fIEld_to_be_indexed);

一旦建立了索引,sqlite3会在针对该字段作查询时,自动使用该索引。这一切的 *** 作都是在幕后自动发生的,无须使用者特别指令。

3.插入数据

sqlite> insert into student values(1,'li','man',23);sqlite> insert into student values(2,'lt','woman',22);

如果是空,则填 NulL

4.查看数据

sqlite> select * from student;1|li|man|232|lt|woman|22

*为查看条件,查看student全部内容

---------------------------------------------------------

sqlite> select name from student;lilt

查看所有的name

--------------------------------------------------------

select * from film limit 10; 

只输出10个结果

--------------------------------------------------------

sqlite> select * from student where ID=1;1|li|man|23

查看ID为1的所有结果

-------------------------------------------------------

sqlite> select * from student order by ID;

以ID为条件从小到大

-------------------------------------------------------

sqlite> select * from student where ID<3;

列出所有ID小于3所有内容

------------------------------------------------------

sqlite> select count(*) from student;4


统计有几个条目
------------------------------------------------------

其他指令不详细写了,类似sql指令

三,QT调用

在工程文件.pro中加入

liBS += -lsqlite3
然后加入头文件

#include <sqlite3.h>

然后在.cpp文件中编写程序,

新建一个数据库db

sqlite3 *db;

sql指令

QString cmd="select * from student;";
sqlite储存数据是以二维数组形式

定义用于装得到的数据有几行几列

int h,l;
定义用于装返回的数据

char** result;
打开一个数据库到db;

sqlite3_open("student.db",&db);

数据库调用函数

sqlite3_get_table(db,cmd.toAscii(),&result,&h,&l,NulL);

第一个参数为要 *** 作的数据库,第二个为 *** 作指令,第三装返回数据,第四个装得到数据的行,第五为列,第六为装错误信息

--------------------------------------------------------------------------------------------------------

然后释放内存

sqlite3_free_table(result);
*** 作完了就关闭

sqlite3_close(db);
电脑上编写的QT程序只要环境都搭建好了在ARM也是直接就可以使用 总结

以上是内存溢出为你收集整理的sqlite数据库在linux下安装,配置,移植,使用,QT调用全部内容,希望文章能够帮你解决sqlite数据库在linux下安装,配置,移植,使用,QT调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1172573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存