嵌入式数据库Sqlite3 Linux(CentOS)环境编译、使用介绍

嵌入式数据库Sqlite3 Linux(CentOS)环境编译、使用介绍

环境:X86 PC、CentOS

编译安装步骤:
1. 从www.sqlite.org网站下载最新源代码,使用sqlite-3.6.23.1。tar.gz版本
2. 在CentOS环境下解压文件,在这里假设/usr/local/sqlite3目录
3. 在终端环境将当前目录切换至/usr/local/sqlite3,并且下面所有目录均在该目录下完成。
4. 配置源代码程序包,生成makefile文件。< $ 表示命令行提示符>
$./configure --prefix=/usr/local/sqlite3
5. 编译并安装 $make   $make install
*如果编译过程中出现TCL相错误,请输入如下配置命令
$./configure --disable-tcl --prefix=/usr/local/sqlite3 并再次执行第5步。
6. 至此编译安装全部完成。会出现/usr/local/sqlite3/lib目录,包括编程时所需要API的sqlite3.h头文件。

Sqlite3使用
1. 一共有两种方法可是使用Sqlite3,分别是终端命令行方式和C/C++API调用编程方式。
2. 命令行方式:在FC6终端输入$sqlite3 dbname(dbname没有具体扩展名要求,任意都可以,类似netmanager.epon)会进入命令行方式并对dbname数据库文件进行操作sqlite>
常用命令:
a) .q 退出
b) .tables列出所有当前数据库表格
c) .databases列出所有数据库
d) .help帮助
e) --表示注释
f) 可以直接执行SQL指令,以分号;结束。以下为部分常用SQL指令,请注意sqlite3中无数据类型概念,故不需要声明,但在转换具体数据时要考虑。
建表  create table table_name(field1,field2,…);
建索引  create index index_name on table_name(field1,field2,…);
新建记录 insert into table_name values(data1,’data2’,….)
查询记录 select field1,field2…. From table_name where order by
更改记录 update table_name set field1=’data1’, field2=data2,… where
删除记录 delete from table_name where
g) 导出、导入数据(需要在终端命令行)
$sqlite3 dbname “.dump”>output.sql
$sqlite3 dbname 详细运用可见http://blog.pfan.cn/lounger/26540.html



3. C/C++API调用编程方式,引用头文件#include 。 具体API请查看C/C++ Interface For SQLite Version 3 http://www.sqlite.org/capi3ref.html。 在gcc编译时需要

注意加入sqlite3库文件的参数,例如gcc sqlite3test.c -o sqlite3test.out -lsqlite3。

下面是我测试的简单程序,完成打开、插入记录、新建表、关闭等功能,其他的操作完全可以通过SQL语句的执行来进行,故不再进行调试。编译完全正常通过。
#include
#include
#include "sqlite3.h"  //放在容一个文件夹下面
#define _DEBUG_

int main( void ){
sqlite3 *db=NULL;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("wx.db", &db); //打开指定数据库文件,如果不存在将创建
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
else printf("You have opened wx.db successfully!\n");
//创建一个表,如果该表存在,则不创建,并给出提示信息,存储在zErrMsg
char *sql ="Create TABLE TEST(ID INTEGER PRIMARY KEY,NAME,AGE);";
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );

#ifdef _DEBUG_
printf("%s\n",zErrMsg);
#endif

//插入数据
sql = "Insert INTO TEST VALUES( NULL, 'WenXu',7);";
sqlite3_exec( db , sql , 0 , 0 , &zErrMsg );
printf("You have insert a new record!\n");

sqlite3_close(db); //关闭数据库
return 0;
}
在终端通过sqlite3命令行查询结果,注意路径
$sqlite3 wx.db
>select * from test;

sqlite3_exec的函数,用于在程序中执行SQL语句管理数据库的,原型说明如下:
int sqlite3_exec(
sqlite3*, /* An open database */
const char *sql, /* SQL to be executed */
sqlite_callback, /* Callback function */
void *, /* 1st argument to callback function */
char **errmsg /* Error msg written here */);

上一篇: NGINX 反向代理服务器配置(亲测)
下一篇: windows 2003 停止服务 重启出现Generic Host Process
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 346 | 引用: 0 | 查看次数: 9876
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭