/* 打开/创建数据库文件
* 如果数据库文件不存在就创建数据库文件。
* 数据库操作句柄保存在第二个参数中。
* 第一个参数:文件路径及其文件名
* 第二个参数: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的更多相关文章

  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. C++ spdlog日志管理

    [1]spdlog简介 spdlog是一个开源的.快速的.仅有头文件的基于C++11实现的一款C++专用日志管理库. [2]源码下载 下载地址:https://github.com/gabime/sp ...

  2. 布局基础<kotlin>(整理自网络)

    全屏 主界面 底部导航,bottombar 添加依赖 implementation 'com.roughike:bottom-bar:2.3.1' 主界面布局 <com.roughike.bot ...

  3. 面试准备 HTTP协议

    http协议的主要特点 简单快速  //某个资源是固定的 (统一资源符)UII 灵活  //http头部有个数据类型,完成不同数据类型的传输 无连接  //链接一次就会断开 无状态 //客户端和服务端 ...

  4. 将hello程序作为驱动程序编译进系统内核

    0x00开始 恩,可能是我比较愚钝,一个内核编译搞了一天,各种问题,各种bug,几度无奈,也是因为我突发奇想,并没有按照原来的那种操作,我直接把helloworld程序放到内核模块中编译成了一个驱动程 ...

  5. java 连接mysql 示例

    import java.sql.*; public class Main { // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL static final String JDBC ...

  6. PAT Advanced 1096 Consecutive Factors (20) [数学问题-因子分解 逻辑题]

    题目 Among all the factors of a positive integer N, there may exist several consecutive numbers. For e ...

  7. UML-如何使用层进行设计?

    1.将代码组织映射为层和UML包 com.mycompany |_nextgen |_ui |_domain |_service |_util org.apache.log4j  2.使用对象设计应用 ...

  8. Go-语言基础-变量-类型-函数

    第一个程序 //单行注释 /* 多行注释 */ package main // 表示当前go文件属于main包 import "fmt" // 导入包 //编译型语言需要有一个入口 ...

  9. ZJNU 2235 - EnDlEsS ChAsE

    因为速度值保证各不相同 所以n只战斗人形会出现 n! 种不同情况 可以用不同id表示不同人形的速度 比如1 2 3三只人形 他们可能的排列有 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 ...

  10. p2p gossip 结构化 非结构化

    p2p P2P中文名字叫对等网络,网络中节点地位一致.    QQ其实不算P2P,因为QQ利用了中央服务器.   Hbase这样的分布式系统,因为有Hmaster节点,也不算是P2P网络:   cas ...