当前位置: 首页 > 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.mrgr.cn/news/42224.html

相关文章:

  • Prompt 初级版:构建高效对话的基础指南
  • 计算机毕业设计 基于Python的个性化旅游线路推荐系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • MySQL 中的 GTID 复制详解
  • JAVA-异常(通俗易懂)
  • Elasticsearch——数据聚合、数据同步与集群搭建
  • C#类的概念
  • 通过栈实现字符串中查找是否有指定字符串的存在
  • mybatis如何与spring的结合
  • 【西门子V20变频器】 变频器运行时报A922报警
  • 15分钟学 Python 第34天 :小项目-个人博客网站
  • (十八)、登陆 k8s 的 kubernetes-dashboard 更多可视化工具
  • MySQL 中的 LAST_INSERT_ID()函数详解
  • MethodChanel的使用方法
  • Linux 应用层协议HTTP
  • Chapter04
  • python-数据容器
  • 【AI知识点】近似最近邻搜索(ANN, Approximate Nearest Neighbor Search)
  • Gazebo安装,ubuntu22
  • 卫生间门口墙皮天天掉,是墙面“返潮”造成的?
  • 国庆刷题(day2)