码迷,mamicode.com
首页 > 数据库 > 详细

SQLite3简单入门及C++ API

时间:2015-07-20 10:35:28      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

 转载请注明出处:http://www.cnblogs.com/StartoverX/p/4660487.html 

 项目用到SQLite3,简单记录一下。

 MySQL不同,SQLite3的数据库基于文件存放,不需要和服务器进程通信,直接通过API调用读取.db文件就可以读取数据库内容。

 1.安装

ubuntu下直接apt-get即可:sudo apt-get install sqlite3 libsqite3-dev

 2.数据类型(DataType)

 SQLite3有五中基本类型,分别是NULL、INTEGER、REAL、TEXT、BLOB。

  NULL:空值。

  INTEGER:带符号整型,根据值的大小以1,2,3,4,6或8字节存放

  REAL:float实数类型,以8字节IEEE浮点数存放。

  TEXT:值是文本字符串,使用数据库编码(UTF-8,UTF-16BE或者UTF-16LE)存放。

  BLOB:只是一个数据块,完全按照输入存放(即没有准换),存储如图片、音视频等。

 3.创建数据库

  shell进入需要创建数据库文件的目录,直接sqlite3 test.db即可,查询databases,tables用.databases,.tables,查看帮助用.help。

 4.C++ API

技术分享 

 以上是最基本的sqlite3 c++ api,而我们最经常使用的就是sqlite3_open(),sqlite3_exec(),sqlite3_close()。sqlite3_exec()是对sqlite3_prepare()sqlite3_step()sqlite3_column(),和 sqlite3_finalize()的一个封装,完成了一个sql语句的执行和返回,举例如下:      

注意callback为sqlite3_exec()的回调函数,而sqlite3_exec()的第三个参数会被传入callback的第一个参数中,由此实现与上下文的通信。
01  #include <stdio.h>
02  #include <sqlite3.h>
03  
04  static int callback(void *arg, int argc, char **argv, char **azColName){
05    int i;
06    for(i=0; i<argc; i++){
07      printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
08    }
09    printf("\n");
10    return 0;
11  }
12  
13  int main(int argc, char **argv){
14    sqlite3 *db;
15    char *zErrMsg = 0;
16    int rc;
17  
18    if( argc!=3 ){
19      fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
20      return(1);
21    }
22    rc = sqlite3_open(argv[1], &db);
23    if( rc ){
24      fprintf(stderr, "Can‘t open database: %s\n", sqlite3_errmsg(db));
25      sqlite3_close(db);
26      return(1);
27    }
28    rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
29    if( rc!=SQLITE_OK ){
30      fprintf(stderr, "SQL error: %s\n", zErrMsg);
31      sqlite3_free(zErrMsg);
32    }
33    sqlite3_close(db);
34    return 0;
35  }

 

参考:An Introduction To The SQLite C/C++ Interface

     SQLite In 5 Minutes or Less

SQLite3简单入门及C++ API

标签:

原文地址:http://www.cnblogs.com/StartoverX/p/4660487.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!