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

Windows下C++使用SQLite

1、安装

  进入SQLite Download Page页面,下载sqlite-dll-win-x86-*.zip、sqlite-amalgamation-*.zip、sqlite-tools-win-x64-*.zip三个包,这三个包里分别包含dll文件和def文件、头文件、exe工具。

  使用vs命令行工具生成.lib文件:进入dll和def文件所在的目录,执行lib /DEF:sqlite3.def /OUT:sqlite3.lib /MACHINE:x86后获得.lib文件,这样就可以通过dll文件、lib文件、头文件来开发SQLite了。

  exe工具可以进行SQLite操作,比如下面为创建数据库和表(输入.quit结束命令,SQL语句以分号结尾):

2、代码示例

#include <iostream>
#include "sqlite3.h"//SQL语句查询结果回调,比如对于select来说,查询到的每一条数据都会执行callback方法一次
static int callback(void* data/*sqlite3_exec()的第四个参数*/, int argc/*结果的列个数*/, char** argv/*结果字段值*/, char** azColName/*结果列名*/) {for (int i = 0; i < argc; i++) {printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");}printf("\n");return 0;
}int main()
{sqlite3* pDB = nullptr;char* zErrMsg = nullptr;const char* sql = nullptr;const char* data = "Callback function called";//打开数据库,不存在则创建int nRes = sqlite3_open("D:\\sqlite\\test.db", &pDB);if (nRes) {fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(pDB));exit(0);}//创建表,已存在则创建失败sql = "create table company("\"id integer primary key autoincrement,"\"name text not null,"\"age integer not null);";nRes = sqlite3_exec(pDB, sql, 0, 0, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}//插入数据sql = "insert into company (id,name,age) values(1, 'Paul', 32); " \"insert into company (id,name,age) values (2, 'Allen', 25); " \"insert into company (id,name,age) values (3, 'Teddy', 23);";nRes = sqlite3_exec(pDB, sql, 0, 0, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}//查询数据sql = "select * from company";nRes = sqlite3_exec(pDB, sql, callback, (void*)data, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}printf("==============================================\r\n");//修改数据sql = "update company set age = 25 where id=1; select * from company";nRes = sqlite3_exec(pDB, sql, callback, (void*)data, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}printf("==============================================\r\n");//删除数据sql = "delete from company where id=3; select * from company";nRes = sqlite3_exec(pDB, sql, callback, (void*)data, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}sqlite3_close(pDB);
}

  


http://www.mrgr.cn/news/81654.html

相关文章:

  • Linux | Ubuntu零基础安装学习cURL文件传输工具
  • 定位方式:css
  • 滑动窗口 + 算法复习
  • 前端js验证码插件
  • 01.HTTPS的实现原理-HTTPS的概念
  • 春招快速准备和是否考研建议
  • 计算机网络习题(第1章 概论 第2章 数据通信基础)
  • 音视频入门基础:MPEG2-TS专题(23)——通过FFprobe显示TS流每个packet的信息
  • React 高阶组件(HOC)
  • 贪心算法(常见贪心模型)
  • 设计模式与游戏完美开发(2)
  • MySQL 查询大偏移量(LIMIT)问题分析
  • Go快速开发框架2.6.0版本更新内容快速了解
  • Python的简单爬虫框架
  • 《传染病与人类历史》传染病如何推动人类历史进程
  • 【Spring AI】Spring AI Alibaba的简单使用
  • HTML速查
  • 【QT开发自制小工具】PDF/图片转excel---调用百度OCR API接口
  • 洛谷 P1014:Cantor 表
  • 用友-友数聚科技CPAS审计管理系统V4 getCurserIfAllowLogin存在SQL注入漏洞
  • Unity Dots理论学习-2.ECS有关的模块(1)
  • KVM虚拟机管理脚本
  • 攻防世界web第三题file_include
  • VSCode调试
  • Oracle 数据库执行计划的查看与分析技巧
  • webauthn介绍及应用