1、sqlite3_open(const char *filename, sqlite3 **ppDb)

该例程打开一个指向 SQLite 数据库文件的连接,返回一个用于其他 SQLite 程序的数据库连接对象。

如果 filename 参数是 NULL 或 ':memory:',那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。

如果文件名 filename 不为 NULL,那么 sqlite3_open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,sqlite3_open() 将创建一个新的命名为该名称的数据库文件并打开。

2、sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)

该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。

在这里,第一个参数 sqlite3 是打开的数据库对象,sqlite_callback 是一个回调,data 作为其第一个参数,errmsg 将被返回用来获取程序生成的任何错误。

sqlite3_exec() 程序解析并执行由 sql 参数所给的每个命令,直到字符串结束或者遇到错误为止。

3、sqlite3_close(sqlite3*)

该例程关闭之前调用 sqlite3_open() 打开的数据库连接。所有与连接相关的语句都应在连接关闭之前完成。

如果还有查询没有完成,sqlite3_close() 将返回 SQLITE_BUSY 禁止关闭的错误消息。

实例一、

1 #include

2 #include

3 #include "../Sqlite3/sqlite3.h"

4 using namespacestd;5

6 int callback(void*,int,char**,char**);7

8 int CreateSQLite(void);9

10 int main(int argc, char *argv[])11 {12 CreateSQLite();13

14 return 0;15 }16

17 int callback(void *NotUsed, int argc, char **argv, char **azColName)18 {19 inti;20 for(i=0; i

25 return 0;26 }27

28 int CreateSQLite(void)29 {30 int rc = 0;31 sqlite3 *p_DB =NULL;32 char *err_msg =NULL;33 char *p_sql = "CREATE TABLE PERSON("\34 "ID INT PRIMARY KEY NOT NULL,"\35 "NAME TEXT NOT NULL,"\36 "AGE INT NOT NULL);";37

38 char *str_sql = "INSERT INTO PERSON(ID, NAME, AGE) VALUES(1, 'toney', 23);"\39 "INSERT INTO PERSON(ID, NAME, AGE) VALUES(2, 'mark', 34);"\40 "INSERT INTO PERSON(ID, NAME, AGE) VALUES(3, 'woekd', 43);"\41 "INSERT INTO PERSON VALUES(4, 'YOU', 55);"\42 "SELECT * FROM PERSON;";43

44 if (SQLITE_OK != (rc = sqlite3_open("mytest.db", &p_DB)))45 {46 cout << "sqlite3_open() function error :"<< sqlite3_errmsg(p_DB) <

50 if (SQLITE_OK != (rc = sqlite3_exec(p_DB, p_sql, callback, 0, &err_msg)))51 {52 cout << "sqlite3_exec() function error :" << err_msg <

56 if (SQLITE_OK != (rc = sqlite3_exec(p_DB, str_sql, callback, 0, &err_msg)))57 {58 cout << "sqlite3_exec() function error :" << err_msg <

62 sqlite3_close(p_DB);63

64 returnrc;65 }

运行结果:

实例二:

1 #include

2 #include

3 #include "../Sqlite3/sqlite3.h"

4

5 int callback(void *NotUsed, int argc, char **argv, char **azColName);6

7 int connect_db(char const *p_db_name);8

9 int update_db(sqlite3 *p_db);10

11 int selec_clo_db(sqlite3 *p_db);12

13 int main(int argc, char *argv[])14 {15 connect_db("mytest.db");16

17 return 0;18 }19

20 int callback(void *NotUsed, int argc, char **argv, char **azColName)21 {22 int i = 0;23 for (i = 0; i < argc; ++i)24 {25 printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");26 }27 printf("\n");28

29 return 0;30 }31

32 int connect_db(char const *p_db_name)33 {34 int rec = 0;35 sqlite3 *p_db =NULL;36 char *p_err_msg =NULL;37 char *p_sql = "SELECT * FROM PERSON;";38

39 if (NULL ==p_db_name)40 {41 printf("DB Name is NULL \n");42 return -1;43 }44

45 rec = sqlite3_open(p_db_name, &p_db);46 if (SQLITE_OK !=rec)47 {48 fprintf(stdin, "sqlite3_open func err : %s\n", sqlite3_errmsg(p_db));49 returnrec;50 }51

52 rec = sqlite3_exec(p_db, p_sql, callback, 0, &p_err_msg);53 if (SQLITE_OK !=rec)54 {55 printf("sqlite3_exec function err : %s\n", p_err_msg);56 sqlite3_free(p_err_msg);57 sqlite3_close(p_db);58 returnrec;59 }60

61

62

63 rec =update_db(p_db);64 if (0 !=rec)65 {66 fprintf(stdin, "update_db function err\n");67 }68

69 returnrec;70 }71

72 int update_db(sqlite3 *p_db)73 {74 int rec = 0;75 char *p_sql = "UPDATE PERSON SET NAME = 'KING' WHERE ID = 2;";76 char *p_err_msg =NULL;77

78 if (NULL ==p_db)79 {80 printf("update_db func p_db is NULL\n");81 return -1;82 }83

84 rec = sqlite3_exec(p_db, p_sql, NULL, 0, &p_err_msg);85 if (SQLITE_OK !=rec)86 {87 printf("update_db sqlite3_exec func err : %s\n", p_err_msg);88 sqlite3_free(p_err_msg);89 sqlite3_close(p_db);90 returnrec;91 }92

93 printf("修改之后 !\n");94 rec =selec_clo_db(p_db);95 if (0 !=rec)96 {97 printf("select_clo_db func err \n");98 }99

100 returnrec;101 }102

103 int selec_clo_db(sqlite3 *p_db)104 {105 int rec = 0;106 char *p_sql = "SELECT * FROM PERSON;";107 char *p_err_msg =NULL;108

109 rec = sqlite3_exec(p_db, p_sql, callback, 0, &p_err_msg);110 if (SQLITE_OK !=rec)111 {112 printf("selec_clo_db sqlite3_exec func err :%s\n", p_err_msg);113 sqlite3_free(p_err_msg);114 }115

116 sqlite3_close(p_db);117

118 returnrec;119 }

运行结果:

fv-15php1c 安装图,SQLite - C/C++接口 API(一)相关推荐

  1. Node.js开发WEB项目后端接口API,基于mysql5.7数据库(小试牛刀)

    项目结构 main.js(入口文件,开启9999端口监听,实现RESTful风格接口访问) const express = require("express"); const ap ...

  2. App开放接口api安全:Token签名sign的设计与实现

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 来源:cnblogs.com/whcghost/p/5657 ...

  3. 微信公众平台自定义菜单接口API指南

    微信公众平台开发模式自定义菜单接口API指南 开发实现方法,请查看 微信公众平台开发(58)自定义菜单 简介 开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建.查询和 ...

  4. 九十三、Python使用百度云接口API实现截图,文字识别和语音合成

    @Author:Runsen @Date:2020/7/13 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  5. python api接口 安全_App开放接口api安全性的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证, 那么这就需要用户提供一些信息,比如用户名密码等 ...

  6. 组件接口(API)设计指南-文件夹

    组件接口(API)设计指南-文件夹 组件接口(API)设计指南[1]-要考虑的问题 组件接口(API)设计指南[2]-类接口(class interface) 组件接口(API)设计指南[3]-托付( ...

  7. java api接口报500_应用程序编程接口API,我们来聊一聊这个熟悉的名词

    API,全称叫做Application Programming interface,也就是应用程序接口,API是一些预先定义的函数,我是学Java的,当我要使用这些函数的时候,便可以直接调用Java ...

  8. 第三方快递接口API调用

    更多面试题请狠狠的点击 下载 快递鸟接口API调用案例,因时间仓促,没有申请EBusinessID和APPkey,申请id和替换: 接口文档及各开发语言Demo <

  9. 小程序开发学习(4)---天气预报接口API篇

    文章目录 1.实现用户定位API 2.获取定位信息 1.实现用户定位API 天气预报API大多数都是需要收费的,但是在现在学习阶段可以不需要购买收费的,网上能找到免费的天气预报API地址,但是可能不是 ...

  10. testng接口自动化测试_Java+Maven+TestNG接口(API)自动化测试教程(10) 使用 Jenkins 构建自动化测试持续集成...

    现在代码可以运行了,但是每次运行都需要我们手工去执行,并且测试报告也只能在执行测试的电脑上才能看到,我们希望能够定时自动执行测试,并且能够做到自动发送测试报告到相关人员的电子邮箱中.Jenkins 正 ...

最新文章

  1. (实验学习)MATLAB与C/C++混合编程之MATLAB调用C程序,转载的
  2. 一个线程加一运算,一个线程做减一运算,多个线程同时交替运行--synchronized...
  3. apmserver导入MySQL_mysql数据库导入导出
  4. ansys的kbc_ANSYS载荷施加
  5. java反射对实体类取值和赋值,可以写成通过实体类获取其他元素的数据,很方便哦~~~...
  6. HDU1686:Oulipo
  7. excel制作跨职能流程图_一款小白轻松上手流程图绘制工具亿图图示
  8. 74LS138译码器真值表以及快速计算方法
  9. php c端,tob端和toc端是什么意思
  10. mysql 10张表左关联查询_mysql left join 左连接查询关联n多张表
  11. qt中socket通信流程图_Qt学习 之 Socket通信(世界上最简单的例子了)
  12. Linux配置文件-limits.conf
  13. 微信小程序毕业设计 基于微信会议室预约小程序系统开题报告
  14. 【Mac双系统设置系统默认启动系统】解决方案
  15. 一个只完成了一部分的小游戏。。。
  16. nvidia驱动升级和nvidia-docker2安装
  17. 对于ESP、EBP寄存器的理解
  18. 基于 C# 和 js 开发的程序员升职记 remake 版
  19. 开启人工智能教育结合的未来模式
  20. 山东工商学院计算机拟录取,2019年山东工商学院拟录取名单公示

热门文章

  1. ubuntu自带截图工具
  2. Spring Boot 整合监听器
  3. java.net.SocketException: Connection reset 问题分析
  4. thinkphp路径引用问题
  5. 百度搜索框智能提示功能代码
  6. DHTML3(表格动态创建,删除行/列,表格行排序,行颜色交替高亮显示)
  7. Team Project 设想 -- 基于用户信息的学术搜索
  8. Gmail推出视频聊天功能 间接否认欲收购Skype
  9. ni软件可以卸载吗_电视盒子自带的软件居然可以这样卸载!
  10. 连锁加盟网站源码_连锁60秒:招商只是开始,养商才最重要