sqlite基础API
/* 打开/创建数据库文件
* 如果数据库文件不存在就创建数据库文件。
* 数据库操作句柄保存在第二个参数中。
* 第一个参数:文件路径及其文件名
* 第二个参数:sqlite3操作句柄
* 返回值:SQLITE_OK表示成功
*/
int sqlite3_open(
const char *filename,
sqlite3 **ppDb
); /* 执行sql语句
* 第一个参数:数据库操作句柄
* 第二个参数:sql语句
* 第三个参数:回调参数
* 第四个参数:传入回调函数的参数
* 第五个参数:保存操作失败的错误信息
* 返回值:SQLITE_OK表示成功
*/
int sqlite3_exec(
sqlite3 * ,
const char *sql,
int (*callback)(void *, int, char **, char **),
void *,
char **errmsg
); /* 释放申请的动态内存
*/
void sqlite3_free(void *); /* 关闭数据库操作
* 参数:数据库操作句柄
*/
int sqlite3_close(sqlite3 *);
简单应用:
#include <sqlite3.h>
#include <stdio.h> int main(void)
{
sqlite3 *db;
char *err_msg = NULL;
char *sql = "create table test_table(ID INT PRIMARY KEY NOT NULL, \
NAME TEXT NOT NULL, \
AGE INT NOT NULL, \
ADDRESS CHAR(), \
SALARY REAL);";
int ret; ret = sqlite3_open("test.db", &db);
if (ret != SQLITE_OK) {
printf("%s[%d] sqlite3_open error!\n", __func__, __LINE__);
goto error;
} ret = sqlite3_exec(db, sql, NULL, NULL, &err_msg);
if (ret != SQLITE_OK) {
printf("%s[%d] sqlite3_exec error!\n", __func__, __LINE__);
goto error;
}
char *tmp = "insert into test_table values(1,'test',1,'beijing', 1000);";
ret = sqlite3_exec(db, tmp, NULL, NULL, &err_msg);
if (ret != SQLITE_OK) {
printf("%s[%d] sqlite3_exec error!\n", __func__, __LINE__);
goto error;
} error: if (err_msg) {
sqlite3_free(err_msg);
}
if (db) {
sqlite3_close(db);
} return ;
}
sqlite基础API的更多相关文章
- SQLite基础教程目录
SQLite基础教程目录 SQLite主页 SQLite概述 SQLite -安装 SQLite -命令 SQLite -语法 SQLite -数据类型 SQLite -创建数据库 SQLite -附 ...
- Linux高性能server编程——Linux网络基础API及应用
Linux网络编程基础API 具体介绍了socket地址意义极其API,在介绍数据读写API部分引入一个有关带外数据发送和接收的程序,最后还介绍了其它一些辅助API. socket地址API 主 ...
- 服务器编程入门(4)Linux网络编程基础API
问题聚焦: 这节介绍的不仅是网络编程的几个API 更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系. 这节主要介绍三个方面的内容:套接字( ...
- Linux 高性能服务器编程——Linux网络编程基础API
问题聚焦: 这节介绍的不仅是网络编程的几个API 更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系. 这节主要介绍三个方面的内容:套接字(so ...
- Android BLE与终端通信(一)——Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址
Android BLE与终端通信(一)--Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址 Hello,工作需要,也必须开始向BLE方向学习了,公司的核心技术就是BLE终端 ...
- SVG 学习<四> 基础API
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- mongoose 基础api 图表整理
一.背景 今天看 mongoose 的基础 API,参考了下面的链接做了图表以供查阅. 参考资料: http://www.cnblogs.com/xiaohuochai/p/7215067.html ...
- React实例入门教程(1)基础API,JSX语法--hello world
前 言 毫无疑问,react是目前最最热门的框架(没有之一),了解并学习使用React,可以说是现在每个前端工程师都需要的. 在前端领域,一个框架为何会如此之火爆,无外乎两个原因:性能优秀,开发 ...
- 【原创】React实例入门教程(1)基础API,JSX语法--hello world
前 言 毫无疑问,react是目前最最热门的框架(没有之一),了解并学习使用React,可以说是现在每个前端工程师都需要的. 在前端领域,一个框架为何会如此之火爆,无外乎两个原因:性能优秀,开发效率 ...
随机推荐
- 同行评审|keywords
审稿流程: 初审 直接被拒,editor开组会讨论的结果 论文水平低 不符合刊物宗旨和要求 同行评审: 单盲评审 双盲评审:限制审稿人倾向 公开评审PNAS Analyse search result ...
- Django模型基础——(二)
上篇博客主要讲了django中对数据库的增删改查,下面深入再讲解下对数据库的操作. 常用的查询方法 下面以表名为User为例 User.object.first() :返回表中第一条数据 User.o ...
- 系统 win 10 专业版 下载地址
thunder://QUFodHRwOi8veHoyLjgxMDg0MC5jb20vY25fd2luZG93c18xMF9jb25zdW1lcl9lZGl0aW9uc192ZXJzaW9uXzE4MD ...
- Python说文解字_杂谈02
1. Py中三个中啊哟的概念type.object和class的关系. type生成了int生成了1 type->class->obj type用来生成类对象的 object是最顶层的基类 ...
- jquery时钟
<script type="text/javascript"> function getDate(){ var mydate = new Date(); //时间对象 ...
- 17.3.12---urlparse模块的URL下载
1---urlparse模块是一个解析与泛解析Web网址URL字符串的一个工具 urlparse模块会将一个普通的url解析为6个部分,返回的数据类型都是元祖,同时,他还可以将已经分解后的url在组合 ...
- Vue专题-组件
vue.js既然是框架,那就不能只是简单的完成数据模板引擎的任务,它还提供了页面布局的功能.本文详细介绍使用vue.js进行页面布局的强大工具,vue.js组件系统. Vue.js组件系统 每一个新技 ...
- jQuery ajax中的dataType——JSON和JSONP
引用:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html [原创]说说JSON和JSONP,也许你会豁 ...
- CSP2019爆零记
Upd:2019.10.19 初赛 Day 0 CSP-S膜你赛(然而只考一个小时xs) 写(xia)完(xie)有51.5 很虚,很慌 不过CSP-J的模拟有90?(所以CSP-S模拟的码风怎么这么 ...
- Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 文件的关系
本教程针对于UEFI启动来叙述的,根据普遍的支持UEFI的机器来叙述. 标题简要说明:Windows Boot Manager --------安装完Windows系统后而出现的启动选项(相关的信息 ...