玩转SQLite6:使用C语言来读写数据库

描述

上篇文章介绍了如何使用Pyhton语言来操作SQLite数据库,对于嵌入式开发,更多的是使用C/C++语言进行开发,因此,本篇介绍如何使用C语言来操作SQLite数据库。

1 SQLite C语言API函数

SQLite的C语言API函数的官方文档地址:https://sqlite.com/capi3ref.html#sqlite3_free

数据库

对于数据库的基础操控,可以先了解以下几个最基本的API函数:

1.1 打开数据库 sqlite3_open

该函数用于打开sqlite3数据库的连接

int sqlite3_open(
  const char *filename,   /* Database filename (UTF-8) */
  sqlite3 **ppDb          /* OUT: SQLite db handle */
);

参数含义:

filename: 数据库文件名

ppDb: 数据库handle ,用结构体sqlite3来表示一个打开的数据库对象

1.2 执行sql语句 sqlite3_exec

int sqlite3_exec(
 sqlite3*,                                  /* An open database */
 const char *sql,                           /* SQL to be evaluated */
 int (*callback)(void*,int,char**,char**),  /* Callback function */
 void *,                                    /* 1st argument to callback */
 char **errmsg                              /* Error msg written here */
);

参数含义:

sqlite3 *: 数据库句柄

sql: 要执行的sql语句

callback: 回调函数

void *: 回调函数的第一个参数

errmsg: 错误信息,如果没有问题则为NULL

1.3 回调函数

回调函数式一个比较复杂的函数,一般用于sql语句执行后的数据打印,其原型为:

int callback(
    void *params,
    int column_size,
    char **column_value,
    char **column_name
);

参数含义:

params: sqlite3_exec传入的第四个参数

column_size: 结果字段的个数

column_value: 返回记录的一位字符数组指针

column_name: 结果字段的名称

回调函数的通常写法为:

static int callback(void *data, int argc, char **argv, char **azColName)
{
   int i;
   fprintf(stderr, "%s:n", (const char*)data);
   for(i=0; i;>

运行结果:

数据库

4 总结

本篇简单介绍了如何使用SQLite的C语言API中最基础的几个函数,实现对数据库的读写,后续再介绍其它常用的C语言API函数的用法。
 

  审核编辑:汤梓红

 

 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分