红联Linux门户
Linux帮助

linux下测试sqlite数据库,不用qt

发布时间:2016-11-03 15:04:23来源:linux网站作者:蜜獾哥
qt自带sqlite数据库支持,但是不用qt如何操作呢?实际上可以移植sqlite源码。
去sqlite主页http://www.sqlite.org/.跳转到下载http://www.sqlite.org/download.html。源码下载sqlite-amalgamation-3.7.3.tar.gz
我去的时候是3.7.3版现在估计升级了。
进入下载目录,解压文件tar -zxvf sqlite-amalgamation-3.7.3.tar.gz.
解压后生成sqlite-3.7.3目录. cd 进入sqlite-3.7.3。
./configure
make
sudo make install
安装完成。
 
测试
在任意目录下新建一个数据库,比如student ,
命令: sqlite3 student
出现如下提示:
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
输入.help可以看到命令列表。
输入sql语句create table user(username text primary key, password text); 建一张user表
输入sql语句insert into user values("tianyou121", "123"); 插入一个用户。
输入sql语句select * from user; 可以查看user表.
输入sql命令是记得结尾的';'号。
 
可以输入如下程序测试数据库:
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
int myfunc(void *p, int argc, char **argv, char **argvv)
{
int i;
*(int *)p = 0;
for(i =0; i < argc; i++)
{
printf("%s = %s ", argvv[i], argv[i] ? argv[i] :"NULL");
}
putchar('/n');
return 0;
}
int main(int argc, char *argv[])
{
sqlite3 *db;
char *err =0;
int ret =0;
int empty =1;
ret = sqlite3_open("student",&db);
if(ret !=SQLITE_OK)
{
fputs("/n",stderr);
exit(1);
}
ret = sqlite3_exec(db, "select * from user;", myfunc, &empty, &err);
if(ret != SQLITE_OK)
{
fputs(err,stderr);
fputs("/n",stderr);
sqlite3_close(db);
exit(1);
}
if(empty)
{
fputs("table student is empty/n", stderr);
exit(1);
}
sqlite3_close(db);
return 0;
}
 
保存文件为sqlite3_t.c和数据库文件放在一个目录下。
用gcc 编译:gcc -o sqlite_t sqlite3_t.c -lsqlite3
记得加上-lsqlite3指定库文件,否则编译不通。
./sqlite_t
可以看到user表中用户信息。
如果提示动态链接库链接错误,执行ldconfig,再次测试ok。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25693.html