1. /* 打开/创建数据库文件
  2. * 如果数据库文件不存在就创建数据库文件。
  3. * 数据库操作句柄保存在第二个参数中。
  4. * 第一个参数:文件路径及其文件名
  5. * 第二个参数:sqlite3操作句柄
  6. * 返回值:SQLITE_OK表示成功
  7. */
  8. int sqlite3_open(
  9.   const char *filename,
  10.   sqlite3 **ppDb
  11. );
  12.  
  13. /* 执行sql语句
  14. * 第一个参数:数据库操作句柄
  15. * 第二个参数:sql语句
  16. * 第三个参数:回调参数
  17. * 第四个参数:传入回调函数的参数
  18. * 第五个参数:保存操作失败的错误信息
  19. * 返回值:SQLITE_OK表示成功
  20. */
  21. int sqlite3_exec(
  22. sqlite3 * ,
  23. const char *sql,
  24. int (*callback)(void *, int, char **, char **),
  25. void *,
  26. char **errmsg
  27. );
  28.  
  29. /* 释放申请的动态内存
  30. */
  31. void sqlite3_free(void *);
  32.  
  33. /* 关闭数据库操作
  34. * 参数:数据库操作句柄
  35. */
  36. int sqlite3_close(sqlite3 *);

简单应用:

  1. #include <sqlite3.h>
  2. #include <stdio.h>
  3.  
  4. int main(void)
  5. {
  6. sqlite3 *db;
  7. char *err_msg = NULL;
  8. char *sql = "create table test_table(ID INT PRIMARY KEY NOT NULL, \
  9. NAME TEXT NOT NULL, \
  10. AGE INT NOT NULL, \
  11. ADDRESS CHAR(), \
  12. SALARY REAL);";
  13. int ret;
  14.  
  15. ret = sqlite3_open("test.db", &db);
  16. if (ret != SQLITE_OK) {
  17. printf("%s[%d] sqlite3_open error!\n", __func__, __LINE__);
  18. goto error;
  19. }
  20.  
  21. ret = sqlite3_exec(db, sql, NULL, NULL, &err_msg);
  22. if (ret != SQLITE_OK) {
  23. printf("%s[%d] sqlite3_exec error!\n", __func__, __LINE__);
  24. goto error;
  25. }
  26. char *tmp = "insert into test_table values(1,'test',1,'beijing', 1000);";
  27. ret = sqlite3_exec(db, tmp, NULL, NULL, &err_msg);
  28. if (ret != SQLITE_OK) {
  29. printf("%s[%d] sqlite3_exec error!\n", __func__, __LINE__);
  30. goto error;
  31. }
  32.  
  33. error:
  34.  
  35. if (err_msg) {
  36. sqlite3_free(err_msg);
  37. }
  38. if (db) {
  39. sqlite3_close(db);
  40. }
  41.  
  42. return ;
  43. }

sqlite基础API的更多相关文章

  1. SQLite基础教程目录

    SQLite基础教程目录 SQLite主页 SQLite概述 SQLite -安装 SQLite -命令 SQLite -语法 SQLite -数据类型 SQLite -创建数据库 SQLite -附 ...

  2. Linux高性能server编程——Linux网络基础API及应用

     Linux网络编程基础API 具体介绍了socket地址意义极其API,在介绍数据读写API部分引入一个有关带外数据发送和接收的程序,最后还介绍了其它一些辅助API. socket地址API 主 ...

  3. 服务器编程入门(4)Linux网络编程基础API

      问题聚焦:     这节介绍的不仅是网络编程的几个API     更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系.     这节主要介绍三个方面的内容:套接字( ...

  4. Linux 高性能服务器编程——Linux网络编程基础API

    问题聚焦:     这节介绍的不仅是网络编程的几个API     更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系.     这节主要介绍三个方面的内容:套接字(so ...

  5. Android BLE与终端通信(一)——Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址

    Android BLE与终端通信(一)--Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址 Hello,工作需要,也必须开始向BLE方向学习了,公司的核心技术就是BLE终端 ...

  6. SVG 学习<四> 基础API

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  7. mongoose 基础api 图表整理

    一.背景 今天看 mongoose 的基础 API,参考了下面的链接做了图表以供查阅. 参考资料: http://www.cnblogs.com/xiaohuochai/p/7215067.html ...

  8. React实例入门教程(1)基础API,JSX语法--hello world

      前  言 毫无疑问,react是目前最最热门的框架(没有之一),了解并学习使用React,可以说是现在每个前端工程师都需要的. 在前端领域,一个框架为何会如此之火爆,无外乎两个原因:性能优秀,开发 ...

  9. 【原创】React实例入门教程(1)基础API,JSX语法--hello world

    前  言 毫无疑问,react是目前最最热门的框架(没有之一),了解并学习使用React,可以说是现在每个前端工程师都需要的. 在前端领域,一个框架为何会如此之火爆,无外乎两个原因:性能优秀,开发效率 ...

随机推荐

  1. java笔记3-手写

    关于类的一些笔记

  2. Mybatix实现in查询(五)

    在这一节,我们要向大家介绍一下在Mybatis中想要实现in查询,Mapper文件应该怎么配置. 1)在com.mybatis.dao.PartDao中增加接口函数 public List<Pa ...

  3. Django2.0——实现简易登陆、注册

    思路: 实现简易的登陆.注册,我们至少需要三个HTML页面,一个主页面.一个登陆界面.一个注册界面.为了存储和校验用户的账号和密码,我们需要写一个模型类(用于映射到数据库).两个form类(一个登陆. ...

  4. openv uMat和Mat数据格式的转换

    Mat 转成 UMat: UMat umat; mat.copyTo(umat); UMat转成 Mat : Mat mat; umat.copyTo(mat);

  5. CSS3-选中的锚链接改变指定样式

    1.css样式 主角就是:target <a> 标签的 target 属性规定在何处打开链接文档,连接文档也可以是一个样式. 如果在一个 <a> 标签内包含一个 target ...

  6. 系统学习python第二天学习笔记

    1.对day01所学内容的练习 """ 评分规则: A >=90 B >=80 C >=70 D 其他 用户输入成绩,根据成绩的不同显示不同的级别. & ...

  7. RFC文档(http部分)

    Request For Comments(RFC),是一系列以编号排定的文件.文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件.目前RFC文件是由Internet Society(IS ...

  8. beta函数与置信度估计

    可信度的估计 二项分布中的\(p\) 服从Beta分布 $ {\rm beta}(\alpha, \beta)$, 密度函数 \(\frac1{B(\alpha, \beta)} x^{\alpha- ...

  9. [LC] 51. N-Queens

    Given an integer n, return all distinct solutions to the n-queens puzzle. Each solution contains a d ...

  10. C到C++转变简述

    从 C 到 C++ 语言的转变 1.平时使用还以 printf, scanf 为主 printf 和 scanf 与 cin cout 相比效率更快 2.头文件改成如下,C++对C语言兼容 #incl ...