当前位置: 首页 > news >正文

SQL学习3

24.10.3学习目录

  • 一.c语言操作数据库

一.c语言操作数据库

(1)打开、关闭数据库函数

//打开数据库
int sqlite3_open(char *db_name,sqlite3 **db);

db_name:数据库文件名,若文件名中有ASCLL码中以外的字符,其必须为UTF-8;
sqlite3 :数据库标识,其为数据库操作句柄,其可以对数据库进行相应操作;

成功返回SQLITE_OK;

//关闭数据库
int sqlite3_close(sqlite3 *db);

成功返回SQLITE_OK;

(2)执行SQL语句函数
执行sql指向的SQL语句,若结果集不为空,函数会调用函数指针callback所指向的函数

int sqlite_exec(sqlite3 *db,const char *sql,exechandler_t callback,void *arg,char **errmsg);

db:数据库的标识;
sql:SQL语句,以;结尾;
callback:其为回调函数指针,当该条语句执行之后,sqlite3会去调用提供好的该函数,其用于处理有结果集时;
arg:当执行sqlite_exec的时候传递给回调函数的参数;
errmsg:存放错误信息的地址,打印错误信息,printf(“%s\n”,errmsg);

(3)回调函数
用户定义,处理sql语句执行后返回的结果集

//回调函数定义
typedef int (*exechandler_t)(void *para,int n_column,char **column_value,char **column_name);

para:表示sql执行函数sqlite_exec传给该函数的参数,其为任意类型;
n_column:结果集的列数;
column_value:指针数组的地址,存放一行信息中各个列值的首地址;
column_name:指针数组的地址,存放一行信息中各个列值对应列名的首地址;

(4)获取表的函数(不使用回调函数)
函数将结果集相关的数据的 地址保存在函数的参数中

int sqlite3_get_table(sqlite3 *db,const char *sql,char ***resultp,int *nrow,int *ncolumn,char **errmsg);

db:数据库标识;
sql:SQL语句;
resultp:指针数组的地址,其记录了结果集的数据,
nrow:结果集的行数;
ncolumn:结果集的列数;
errmsg:错误信息;

//释放sqlite3_get_table分配的内存
void sqlite3_free_table(char **resultp);
http://www.lryc.cn/news/452318.html

相关文章:

  • Linux:进程控制(一)
  • 初识算法 · 双指针(3)
  • 【AI知识点】近似最近邻搜索(ANN, Approximate Nearest Neighbor Search)
  • 编程工具简介
  • 汽车信息安全 -- 存到HSM中的密钥还需包裹吗?
  • 【PostgreSQL】入门篇——SELECT、INSERT、UPDATE 和 DELETE 语句,SQL 中最常用的四种操作用法
  • 【Ubuntu】安装常用软件包-mysql
  • 幂等性及技术解决方案
  • 正向代理 反向代理
  • 【分布式微服务云原生】如何在ActiveMQ中优雅处理提前支付的延时订单
  • Easy Excel从入门到精通!!!
  • 简易CPU设计入门:取指令(三),ip_buf与rd_en的非阻塞赋值
  • 【算法】---归并排序(递归非递归实现)
  • UniVue大版本更新:UniVue2.0.0-preview
  • RabbbitMQ篇(环境搭建 - 下载 安装)(持续更新迭代)
  • C++基础补充(02)C++其他控制语句break continue goto等
  • 决策树中联合概率分布公式解释说明
  • 计算机毕业设计 农场投入品运营管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • php email功能实现:详细步骤与配置技巧?
  • MapBox Android版开发 6 关于Logo
  • 2024年房市
  • index索引
  • 理解互联网链路:从本地ISP到Tier 1 ISP运营商
  • 基于元神操作系统实现NTFS文件操作(三)
  • 深度学习与数学归纳法
  • 《Linux从小白到高手》理论篇(六):Linux软件安装一篇通
  • 【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错
  • ②EtherCAT转Modbus485RTU网关多路同步高速采集无需编程串口服务器
  • matlab-对比两张图片的HSV分量的差值并形成直方图
  • 微服务SpringGateway解析部署使用全流程