MFC操作Sqlite数据库

Toc

  1. 1. 下载Sqlite官方的dll和def文件及源代码
  2. 2. 利用lib命令编译lib文件(lib.exe通常在Visual Studio的某个安装目录下)
  3. 3. 项目引入sqlite3.dll,sqlite3.def和sqlite3.h文件
  4. 4. 测试一下
  5. 5. 启动调试

这几天为了完成小学期面向对象程序设计的大作业不得不捣鼓MFC。
But,MFC相关的资料少之又少,不少资料甚至还停留在VC++ 6.0的时代。

下载Sqlite官方的dll和def文件及源代码

链接: https://sqlite.org/download.html

下载sqlite源代码

利用lib命令编译lib文件(lib.exe通常在Visual Studio的某个安装目录下)

先将刚刚下载的2个压缩包中的文件解压到同一个文件夹,然后执行

1
lib /def:sqlite3.def /machine:x64 /out:sqlite3.lib

执行结果如下:

1
2
3
4
5
PS D:\sqlite-dll-win64-x64> lib /def:sqlite3.def /machine:x64 /out:sqlite3.lib
Microsoft (R) Library Manager Version 14.29.30040.0
Copyright (C) Microsoft Corporation. All rights reserved.

正在创建库 sqlite3.lib 和对象 sqlite3.exp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PS D:\sqlite-dll-win64-x64> ls

目录: D:\sqlite-dll-win64-x64>

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2021/6/19 2:52 687509 shell.c
-a---- 2021/6/19 2:52 8312766 sqlite3.c
-a---- 2021/6/19 7:23 7568 sqlite3.def
-a---- 2021/6/19 7:23 2127360 sqlite3.dll
-a---- 2021/9/2 18:16 46811 sqlite3.exp
-a---- 2021/6/19 2:52 588809 sqlite3.h
-a---- 2021/9/2 18:16 77424 sqlite3.lib
-a---- 2021/6/19 2:52 35437 sqlite3ext.h

可以看到lib文件已经正常生成了。

项目引入sqlite3.dll,sqlite3.def和sqlite3.h文件

sqlite添加现有项

测试一下

添加button
添加button

给按钮添加响应事件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void CMFCApplication2Dlg::OnBnClickedButton1()
{
// 初始化数据库
sqlite3* m_sql_database;
int rc;
char* err_msg = NULL;
char sql[200] = "";

rc = sqlite3_open("./data.db", &m_sql_database);// 打开数据库,不存在时创建
if (rc)
{
sqlite3_close(m_sql_database); //打开失败!
MessageBox(_T("数据库打开失败,请检查后再操作!"), NULL, MB_ICONSTOP);
return;
}
sprintf_s(sql, "CREATE TABLE IF NOT EXISTS test(id int PRIMARY KEY NOT NULL, item varchar(20) NOT NULL UNIQUE)");// 创建一个表格
if (sqlite3_exec(m_sql_database, sql, NULL, NULL, &err_msg) != SQLITE_OK)
{
MessageBox(_T("Error!"), NULL, MB_ICONSTOP);
return;
}
}

启动调试

调试

这里data.db已经被成功创建了,搞定~
data.db

MFC Sqlite C++ Cpp VC++
docker升级报错containerd.io >= 1.4.1的解决方案
© 2021 东南dnf