sqlites数据库读取,仅适用于数据少的数据库查询【改进版】

2024-05-23 22:12

本文主要是介绍sqlites数据库读取,仅适用于数据少的数据库查询【改进版】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

直接使用运行程序时加入数据库名和表明,直接完成查询

如:编译后的可执行程序为test,则在命令行输入

./test test.db name

代码如下:

#include <stdio.h>
#include <sqlite3.h>static int callback(void *data, int argc, char **argv, char **azColName) {int i;static int lines = 0;for (i = 0; i < argc; i++) {printf("[%d] %s = %s\n", i, azColName[i], argv[i] ? argv[i] : "NULL");}lines++;printf("第%d行数据查询完毕...\n", lines);return 0;
}int main(int argc, char *argv[]) {sqlite3 *db;char *errMsg = 0;int rc;// 检查参数数量if (argc < 3) {fprintf(stderr, "使用方法: %s 数据库文件 表名\n", argv[0]);return 1;}const char *db_filename = argv[1]; // 数据库文件名从命令行参数获取const char *table_name = argv[2];  // 表名从命令行参数获取// 打开数据库连接rc = sqlite3_open(db_filename, &db);if (rc) {fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db));return 0;} else {fprintf(stdout, "成功打开数据库\n");}// 构建SQL查询语句char *sql = malloc(strlen("SELECT * FROM ") + strlen(table_name) + 1);sprintf(sql, "SELECT * FROM %s;", table_name);// 查询指定表中的所有记录rc = sqlite3_exec(db, sql, callback, 0, &errMsg);if (rc != SQLITE_OK) {fprintf(stderr, "SQL错误: %s\n", errMsg);sqlite3_free(errMsg);} else {fprintf(stdout, "查询成功\n");}// 清理SQL语句free(sql);// 关闭数据库连接sqlite3_close(db);return 0;
}

 

这篇关于sqlites数据库读取,仅适用于数据少的数据库查询【改进版】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/996556

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处