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

sqlite3---维护命令、回调函数

一、维护命令

1.数据的导出

1.1用法

sqlite3 xxx.db .dump > xxx.sql
//将数据库名称为xxx的数据库整体导出到脚本中。

1.2代码示例

2.数据的导入

2.1用法

sqlite3 xxx.db < xxx.sql

2.2代码示例

3.可视化工具安装

sudo apt-get install sqlitebrowser 

二、回调函数

1.输出一次标题输出一次内容

#include <sqlite3.h>
#include <stdio.h>//此时为输出一次标题输出一次内容
int show(void *arg, int clo, char **result, char **title)
{for (int i = 0; i < clo; i++){printf("%s\t", title[i]);}printf("\n");
for (int i = 0; i < clo; i++){printf("%s\t", result[i]);}printf("\n");return 0;
}int main(int argc, char **argv)
{// int sqlite3_open( const char *filename, sqlite3 **ppDb);sqlite3 *db = NULL;char *errmsg;int ret = sqlite3_open("./aaa.db", &db);if (SQLITE_OK != ret){//不能使用perrorfprintf(stderr, "open db error:%s\n", sqlite3_errstr(ret));// 或者使用fprintf(stderr,"open db error:%s\n",sqlite3_errmsg(db));sqlite3_close(db);return 1;}char sql_cmd[512] = "select * from user1";//此处show为回调函数ret = sqlite3_exec(db, sql_cmd, show, NULL, &errmsg);if (SQLITE_OK != ret){//不能使用perrorfprintf(stderr, "exec db:%s error:%s\n", sql_cmd, errmsg);sqlite3_free(errmsg);sqlite3_close(db);return 1;}sqlite3_close(db);// system("pause");return 0;
}

2.只输出一次标题

#include <sqlite3.h>
#include <stdio.h>//只输出一次标题
int show(void *arg, int clo, char **result, char **title)
{static int flag = 0;if (0 == flag){flag = 1;for (int i = 0; i < clo; i++){printf("%s\t", title[i]);}printf("\n");}for (int i = 0; i < clo; i++){printf("%s\t", result[i]);}printf("\n");return 0;
}int main(int argc, char **argv)
{// int sqlite3_open( const char *filename, sqlite3 **ppDb);sqlite3 *db = NULL;char *errmsg;int ret = sqlite3_open("./aaa.db", &db);if (SQLITE_OK != ret){//不能使用perrorfprintf(stderr, "open db error:%s\n", sqlite3_errstr(ret));// 或者使用fprintf(stderr,"open db error:%s\n",sqlite3_errmsg(db));sqlite3_close(db);return 1;}char sql_cmd[512] = "select * from user1";//此处show为回调函数ret = sqlite3_exec(db, sql_cmd, show, NULL, &errmsg);if (SQLITE_OK != ret){//不能使用perrorfprintf(stderr, "exec db:%s error:%s\n", sql_cmd, errmsg);sqlite3_free(errmsg);sqlite3_close(db);return 1;}sqlite3_close(db);// system("pause");return 0;
}

http://www.lryc.cn/news/603740.html

相关文章:

  • 【机器学习深度学习】分布式训练的核心技术全解:数据并行、模型并行、流水线并行与3D混合并行
  • 基于最小二乘支持向量机(LSSVM)的气象预测
  • css 二维变换之详说
  • 引领汽车加速向具身智能进化,吉利携阶跃星辰参展WAIC 2025
  • 考古学家 - 华为OD统一考试(JavaScript 题解)
  • STM32寄存器中的缩写
  • 【HTML】浅谈 script 标签的 defer 和 async
  • 数据库4.0
  • 健壮性篇(一):优雅地“拥抱”错误:构建一个可预测的错误处理边界
  • vue-计算属性
  • Android Slices:让应用功能在系统级交互中触手可及
  • FPGA数码管驱动模块
  • windows软件ARM64和AMD64(x64)区别,如何查看电脑支持哪种
  • 沪铝本周想法
  • C++ 模板补充
  • 网工知识——OSPF摘要知识
  • 重生之我在暑假学习微服务第四天《Docker-下篇》
  • 《林景媚与时间守护者》
  • 博途SCL: Input、Output、Static、Temp、Constant、InOut 的详细介绍及案例
  • 实现视频实时马赛克
  • DevOps 详解
  • PHP入门:从0到1开启Web开发之旅
  • Apache Ignite 的对等类加载(Peer Class Loading, P2P Class Loading)机制
  • Apache服务器指南
  • 《Spring Cloud Gateway 深度剖析:从核心原理到企业级实战》
  • SpringCloud之Gateway
  • SpringBoot之起步依赖
  • 【变更性别】
  • 【Linux篇】补充:消息队列和systemV信号量
  • 从本地 Docker 部署的 Dify 中导出知识库内容(1.6版本亲测有效)