sqlite--SQLite的C编程

SQLite3 数据库学习(三):SQLite C API 接口详解 阅读详情

SQLite的C编程

打开、 关闭数据库函数

sqlite3 使用了两个库: pthread、 dl, 故链接时应加上 -lpthread 和 -ldl 。

/**
 * @function: 打开数据库
 * @parameter: 
 *        db_name:数据库文件名,UTF-8 编码
 *        db:数据库标识,此结构体为数据库操作句柄。 通过此句柄可对数据库文件进行相应操作。
 * @return {type} 
 *     success: SQLITE_OK
 *     error: 非 SQLITE_OK
 * @note: 
 */
int sqlite3_open(char *db_name,sqlite3 **db);
/**
 * @function: 关闭数据库、 释放打开数据库时申请的资源。
 * @parameter: 
 *        db: 数据库的标识
 * @return {type} 
 *     success: SQLITE_OK
 *     error: 非 SQLITE_OK
 * @note: 
 */
int sqlite3_close(sqlite3 *db);

Sqlite3 中执行 SQL 语句的方法 (回调方法)

/**
 * @function: 执行 sql 指向的 SQL 语句, 若结果集不为空, 函数会调用函数指针 callback 所指向的函数。
 * @parameter: 
 *        db: 数据库的标识
 *        sql: SQL 语句(一条或多条),以’;’结尾
 *        callback: 是回调函数指针, 当这条语句执行之后, sqlite3 会去调用你提供的这个函数
 *        arg: 当执行 sqlite3_exec 的时候传递给回调函数的参数
 *        errmsg: 存放错误信息的地址, 执行失败后可以查阅这个指针
 * @return {type} 
 *     success: SQLITE_OK
 *     error: 非 SQLITE_OK
 * @note: 
 */
int sqlite3_exec(sqlite3 *db,
               const char *sql,
               exechandler_t callback,
               void *arg,
               char **errmsg);
//打印错误信息方法
printf("%s\n", errmsg);
/**
 * @function: 回调函数指针
 * @parameter: 
 *        para: sqlite3_exec 传给此函数的参数, para 为任意数据类型的地址。
 *        n_column: 结果集的列数。
 *        column_value: 指针数组的地址,其存放一行信息中各个列值的首地址
 *        column_name: 指针数组的地址,其存放一行信息中各个列值对应列名的首地址
 * @return {type} 
 *     success: 非 0 值, 则通知 sqlite3_exec 终止回调
 *     error: 
 * @note: 此函数由用户定义, 当 sqlite3_exec 函数执行 sql 语句后, 
 * 结果集不为空时 sqlite3_exec 函数会自动调用此函数, 每次调用此函数时会把结果集的一行信息传给此函数。
 */
typedef int (*exechandler_t)(void *para,
                       int n_column,
                       char **column_value,
                       char **column_name);

栗子 sqlite3_exec .c :

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sqlite3.h>

int main(int argc,char **argv)
{
    sqlite3 *db = NULL;
    char *sql = NULL;
    int result = 0;
    char *errmsg;

    result = sqlite3_open("test.db",&db);

    if(result != SQLITE_OK)
    {
        printf("open error\n");
        return -1;
    }

    sql = "insert into cpucode values (4,'test','beijing');";

    sqlite3_exec(db,sql ,NULL, NULL, &errmsg);
    if(errmsg)
    {
        printf("errmsg = %s\n", errmsg);
    } 

    sqlite3_close(db);
    return 0;
}

Makefile

OBJ += sqlite3_exec.o
OBJ += sqlite3.o

FLAGS = -Wall
CC = gcc

example:$(OBJ)  
    $(CC) $(OBJ) -o $@ $(FLAGS) -lpthread -ldl
%.o:%.c
    $(CC) -c $^ -o $@ $(FLAGS)

.PHONY:clean
clean:
    rm example *.o -rfv

Sqlite3 中执行 SQL 语句的方法 (非回调方法)

/**
 * @function: 关闭数据库、 释放打开数据库时申请的资源。
 * @parameter: 
 *        db: 数据库的标识
 * @return {type} 
 *     success: SQLITE_OK
 *     error: 非 SQLITE_OK
 * @note: 
 */
int sqlite3_get_table(sqlite3 *db,
               const char *sql,
               char ***resultp,
               int *nrow,
               int *ncolumn,
               char **errmsg);
/**
 * @function: 释放 sqlite3_get_table 分配的内存
 * @parameter: 
 *        resultp: 结果集数据的首地址。
 * @return {type} 
 *     success: 
 *     error: 
 * @note: 
 */
void sqlite3_free_table(char **resultp);
SQLiteC/C++接口详细介绍-sqlite3类(一) SQLite拥有超过225个API,本系列文章将深入介绍 SQLite C/C++ 数据库接口的基础知识,包括如何连接和打开 SQLite 数据库、执行查询和事务管理、提取查询结果集等等,帮助开发者更好地了解和使用 SQLite 数据库接口。本文详细介绍库文件打开关闭接口。 阅读详情

相关推荐

常见软件---SQLite3的C语言下使用

介绍了c语言使用sqlite的基本操作

小人物的编程 4314

SQLite数据库C_C++接口(保姆级API应用 1.4W字)(全网最详细介绍,学完必掌握)

三种查询方式总结 回调函数查询内存开销小,但查询效率相对较低;全缓冲查询的查询效率高,但是内存消耗大;字节缓冲查询兼具查询效率和低开销。(优先使用第三种查询方法) sqlite实现C语言自定义函数封装 由于数据库提供的API接口过于复杂,使用的过程顺序也很繁琐,所以对于原生态的API在实际工作开发中,会进行一层封装,减少调用传参,减少调用次数,增加代码可读性,提高开发效率。 可封装如下:包括创建数据库、建表、插入数据、查询数据、删除数据

qq_25218501的博客 5816

SQlite数据库的C编程接口(一) 简介 ——《Using SQlite》读书笔记

SQlite数据库的C编程接口(一) 简介   by斜风细雨QQ:253786989    2012-02-01   客户应用程序可以通过SQlite提供的C API与SQlite library和数据库引擎交互,从而完成相应的数据操作。c/c++编程语言可以直接使用这些native C APIs,对于其它一些编程语言包括Python等脚本语言,可以通过一些第三方封装库来访问SQlite

斜风细雨 5375

C语言操作SQLite

1 下载源代码 采用C语言操作SQLite数据库时需要引入sqlite3库,我们可以在官网下载源代码后编译。 2 C代码-不用回调函数执行SQL语句 #include <stdio.h> #include <stdlib.h> #include <sqlite3.h> int main(void){ sqlite3 *db; //数据库 sqlite3_open("test.db", &db); //打开数据库 c

weixin_46133643的博客 4910

基于SQLITE数据库的C语言编程

出自这里 一 SQLITE 操作入门 sqlite 提供的是一些 C 函数接口,你可以用这些函数操作数据库。通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 sqlite 函数, sqlite 就会为你操作数据库。 sqlite 跟 MS 的 access 一样是文件型数据库,就是说,一个数据库就是一个文件,此数据库里可以建立很多的表,可以建立索引、触发器等等,但

Tuesday 1万+

SQLite - C/C++ 编程指南

SQLite 是一个关系数据库管理系统,它使用 SQL 作为数据语言进行操作。SQLite 的核心库是一个小于 1MB 的单个跨平台文件,这使得它非常适合移动和嵌入式设备。轻量级:SQLite 的核心库非常小,易于嵌入到应用程序中。跨平台:SQLite 支持多种操作系统,包括 Windows、Linux、macOS 和 Android。易于使用:SQLite 使用标准的 SQL 语言进行数据操作。事务支持:SQLite 支持事务,确保数据的一致性和完整性。

csbysj2020的博客 486

sqlite c语言编程_用C教程2编程SQLite

sqlite c语言编程 This tutorial is the second in a series on programming SQLite in C. 本教程是用C语言 编程 SQLite系列文章的第二篇。 SQLite stores a collection of tables in a single file database, usually ending in .db. ...

cumao2792的博客 431

SQLite - C/C++编程接口详解

本文介绍了SQLite的C/C++编程接口,包括安装、配置、连接数据库、执行SQL语句和事务处理。希望本文能帮助您更好地了解和使用SQLite。在实际开发过程中,您可以根据需要调整和扩展这些示例代码。

lsx202406的博客 540

Linux中操作sqlite3、sqlite3数据c/c++接口编程与Windows和Linux中sqlite3库的制作(SQLite二)

讲解了在Linux中操作sqlite3的方法;在Windows和Linux中sqlite3数据与C/C++的接口编程,包括打开数据库文件、操作数据、关闭数据库文件、数据绑定机制和事务机制;以及在Windows和Linux中sqlite3库的制作与使用。...

Java.L的博客 1961

SQlite数据库的C编程接口(二) 数据库连接 ——《Using SQlite》读书笔记

SQlite数据库的C编程接口(二) 数据库连接   by斜风细雨QQ:253786989    2012-02-03 库初始化 int sqlite3_initialize(void); int sqlite3_shutdown(void);   在使用SQlite Library之前,首先应该调用sqlite3_initialize函数,该函数将分配资源,初始化一些必要的数据结构

斜风细雨 1万+

矩阵管理:一人100账号霸屏小红书,保姆级教程经验技巧

同时,如果你的账号表现很正常,很OK,它也增加账号权重。手机环境:一机一卡一号是基本操作,如果你觉得设备成本高,你就要知道WIN的云真机,一键新机,一键随机设备参数,一键还原,一键安装应用,自带批量发布笔记,私信聚合,自带回复私信,一键养号等等,一人批量注册100个小红书账号真的很简单!从流量逻辑来分析,大家有没有发现,从账号粉丝数来看,小红书很难出现类似抖音上超千万粉丝量级的账号,几十万粉丝的博主已经是头部账号了,原因在于,抖音的流量分发机制是80%的流量集中在 20% 的头部账号而。

FDF432DF的博客 5151

linux 下sqlite的 C编程之sqlite3_get_table

说明:通过sqlite3_get_table查询得到的结果,其结构是:第一行是列名,随后的行才是值。遍历的方式和二维数组相同。#include &lt;unistd.h&gt;#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;sqlite3.h&gt;#include "test.h"int main(int argc, c...

好习惯成就伟大 6272

Autodesk激活无无网络选项?许可类型与脱机激活排查修复指南

软件许可激活是保障正版授权正常使用的核心环节,常见的授权模式包括单机版许可和网络版许可,两者在认证机制和应用场景上有所区别。单机版离线授权依托 FlexNet Licensing Service 等底层服务组件,在断网或内网环境下为用户提供可靠的技术支持与授权验证路径。然而在实际部署中,激活窗口并不总是显示“无网络激活方式”入口,这可能与许可类型选择、网络环境干扰、组件安装残留或系统时间偏差有关。理解入口的动态呈现逻辑与排查顺序,有助于在 AutoCAD、Revit 等 Autodesk 产品中高效解决脱机

weixin_28709649的博客 358

sqlite3 C语言编程

sqlite数据库操作例程: #include #include #include int main() { sqlite3 *db; char *zErrMsg = 0; char sql[128]; //存放sqlite执行命令 char buff[1024]; //存放读取到的数据结果 int rc; int len = 0; memset(buff,0,sizeof(b

just do it 2816

力软敏捷开发框架源码7.0.6旗舰版 JNPF开发平台3.4.5 企业版 旗舰版

JNPF作为作为一款深受用户喜爱的低代码产品,凭借雄厚的科研技术力量、丰富的软件开发项目经验、严谨的项目开发流程和高质量的售后服务,已成功帮助千家企业完成数字化项目,建立了覆盖不同行业客户和不同发展阶段的软件产品服务体系。

huoooos0的博客 1842

从零开始用TS开发babylonjs - 本机环境搭建

babylonjs,初始化本地安装,web3d引擎

han3527638的专栏 797

SQLite - C/C++编程环境搭建与使用指南

本文详细介绍了SQLite在C/C++环境下的搭建和使用。通过本文,您可以了解SQLite的安装、编译、集成以及如何在C/C++程序中操作数据库。希望本文对您有所帮助。

lsx202406的博客 436

【机电杂谈2】BLDC和PMSM的特点和区别

在日常生活中,小到电动玩具,大到电动汽车,永磁电机的身影可以说是无处不在。有刷直流电机、无刷直流电机、永磁同步电机由于其结构和输出特定的不同也被应用到不同的场合。如果你经常拆一些玩具和家电,就会看到大量的有刷直流电机和无刷直流电机,而永磁同步电机主要应用在高精度的工业伺服和电动汽车领域。本文就从电机的结构和控制方面,对这几种常见的永磁电机做简单的梳理和归纳。

2938

sqlite3常用编程接口C语言版

gcc student.c -lsqlite3 -o student 其它函数接口参见sqlite3官网C语言接口函数表 ncolumn是共有几列,由上图(来自官网示例)可知,当index=ncolumn,正好是第一个数据的下标。

优快云_Xian的博客 417

HR效率翻倍!用Dify+飞书AI表格打造自动化简历处理流水线(附完整代码)

本文详细介绍了如何利用Dify工作流和飞书多维表格构建自动化简历处理系统,实现简历上传、AI智能解析与结构化数据入库的全流程自动化。通过整合大语言模型进行信息抽取,该系统能显著提升HR处理简历的效率与准确性,将HR从重复劳动中解放出来。

1a2s3d4f5g的博客 1030

易盾滑块的js逆向分析

基于易盾的滑块验证码进行逆向分析,最种实现全系列的验证码逆向,包括滑块、点选、推理拼图等多种类型。

shanf7921的博客 3万+

Linux下c编程sqlite3的基本语句

目录 Ubuntu下安装sqlite3 sqlite3的基本系统命令 sqlite3基本命令 使用sqlite3查看已经创建的表 使用C语言的接口函数来进行对数据库的增删改查的操作 编程示例 测试实例 Ubuntu下安装sqlite3 命令行安装 sudo apt-get install sqlite3 检查是否安装成功 //在shell界...

Tian Jincheng's Blog 826

18、AI在基础设施管理与运维中的应用及未来趋势

本文探讨了人工智能(AI)在基础设施管理和运维中的广泛应用,包括性能优化、成本节约、网络安全等多个场景。文章详细介绍了AI在不同领域的应用工具、实际案例以及面临的挑战,并展望了未来AI在基础设施管理中的发展趋势。此外,还分析了AI与Site Reliability Engineering(SRE)框架的结合优势,展示了AI如何提升运维效率和系统可靠性。

n7o8p的博客 149

sqlite数据库编程之C语言环境搭建

使用sqlite3提供的C接口编程之前需要配置sqlite3的编程

bobopeng 1831

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

c 语言 sqlite,SQLite 的 C 语言编程

执行sql语句复制代码 代码如下:intsqlite3_exec ( sqlite3 *db, // 使用 sqlite3_open () 打开的数据库对象。const char *sql, // 一条待查询的 SQL 语句sqlite3_callback, // 自定义的回调函数,对查询结果每一行都执行一次这个函数void *,char **errmsg);这是最常用的执行 sql 语句的调用...

weixin_32521745的博客 584

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: sqlite--SQL语句进阶
下一篇: ubuntu--Linux运行时格式
onnx
博客等级 码龄5年 1万+粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值