【sqlite的C语言访问接口】执行SQL语句的接口------sqlite3_exec回调函数的使用

简介: 【sqlite的C语言访问接口】执行SQL语句的接口------sqlite3_exec回调函数的使用

sqlite3_exec的函数原型

int sqlite3_exec(
sqlite3 *pDb,
const char *sql,
int (*callback)(void *arg, int col, char **str, char **name),
void *arg,
char **errmsg
)


参数说明:

pDb:打开数据库的句柄

sql:要执行的SQL语句

callback:回调函数,处理SQL语句执行的结果(查询操作)

一条结果调用一次该回调函数。(注:回调函数必须返回SQLITE_OK)

arg:exec的第四个参数

col:本条结果的字段数

str:记录字段值的数组

name:记录字段名的数组

arg:传递给回调函数的第一个参数

errmsg:错误信息


返回值

成功返回SQLITE_OK,否则打开失败

例子

#include <stdio.h>
#include "sqlite3.h"

//查询的回调函数
int sql_callback(void *arg,int col,char **str,char **name)
{
  int i;
  for(i=0;i<col;i++){
    printf("%s:%s ",name[i],str[i]);
  }
  printf("\n");
  
  //返回SQLITE_OK表示执行成功
  return SQLITE_OK;
}

int main()
{
  sqlite3 *pDb =  NULL;
  //1.打开数据库
  int res = sqlite3_open("./test.db",&pDb);
  if(res!=SQLITE_OK){
    printf("数据库打开失败!\n");
    return -1;
  }
  printf("数据库打开成功!\n");
  
  int id = 0;
  char sql[128] = {};
  printf("请输入要查找的id:");
  scanf("%d",&id);
  sprintf(sql,"select * from mytbl where id=%d;",id);
  
  //构建SQL语句
  //const char *sql = "create table if not exists mytbl(id int unique,name ntext,age int);";//建表
  //const char *sql = "insert into mytbl values(1,'宋江',36);";//插入
  //const char *sql = "insert into mytbl values(2,'李逵',24);";//插入
  //const char *sql = "insert into mytbl values(3,'潘金莲',21);";//插入
  //const char *sql = "select * from mytbl;";//查询
  
  
  //2.执行SQL语句
  res = sqlite3_exec(pDb,sql,sql_callback,NULL,NULL);
  if(res!=SQLITE_OK){
    printf("sql语句执行失败!\n");
    return -1;
  }
  printf("sql语句执行成功!\n");
  
  //3.关闭数据库
  sqlite3_close(pDb);
  return 0;
}


相关文章
|
2月前
|
Linux C语言 iOS开发
C语言结合AWTK开发HTTP接口访问界面
这样,我们就实现了在C语言中使用libcurl和AWTK来访问HTTP接口并在界面上显示结果。这只是一个基础的示例,你可以根据需要添加更多的功能和优化。例如,你可以添加错误处理机制、支持更多HTTP方法(如POST、PUT等)、优化用户界面等。
264 82
|
6月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
153 11
|
7月前
|
传感器 人工智能 物联网
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发,以及面临的挑战和未来趋势,旨在帮助读者深入了解并掌握这些关键技术。
175 6
|
7月前
|
C语言 开发者
C语言中的模块化编程思想,介绍了模块化编程的概念、实现方式及其优势,强调了合理划分模块、明确接口、保持独立性和内聚性的实践技巧
本文深入探讨了C语言中的模块化编程思想,介绍了模块化编程的概念、实现方式及其优势,强调了合理划分模块、明确接口、保持独立性和内聚性的实践技巧,并通过案例分析展示了其应用,展望了未来的发展趋势,旨在帮助读者提升程序质量和开发效率。
259 5
|
7月前
|
存储 缓存 算法
C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力
本文探讨了C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力。文章还分析了数据结构的选择与优化、算法设计的优化策略、内存管理和代码优化技巧,并通过实际案例展示了C语言在排序和图遍历算法中的高效实现。
182 2
|
8月前
|
SQL Java 数据库连接
mybatis使用四:dao接口参数与mapper 接口中SQL的对应和对应方式的总结,MyBatis的parameterType传入参数类型
这篇文章是关于MyBatis中DAO接口参数与Mapper接口中SQL的对应关系,以及如何使用parameterType传入参数类型的详细总结。
196 10
|
8月前
|
SQL 关系型数据库 BI
使用 Webshell 访问 SQL Server 主机并利用 SSRS
使用 Webshell 访问 SQL Server 主机并利用 SSRS
|
8月前
|
数据采集 SQL 数据库
小说爬虫-01爬取总排行榜 分页翻页 Scrapy SQLite SQL 简单上手!
小说爬虫-01爬取总排行榜 分页翻页 Scrapy SQLite SQL 简单上手!
224 0
|
10月前
|
开发框架 前端开发 .NET
七天.NET 8操作SQLite入门到实战 - (3)第七天Blazor学生管理页面编写和接口对接
七天.NET 8操作SQLite入门到实战 - (3)第七天Blazor学生管理页面编写和接口对接
112 1
|
10月前
|
SQL 安全 Java
访问者模式问题之在上面的 SQL 结构定义中, sealed 接口的作用如何理解
访问者模式问题之在上面的 SQL 结构定义中, sealed 接口的作用如何理解