前言

SQLite 是一个 C 语言库,它实现了一个 小型、 快速、 自包含、 高可靠性、 功能齐全的SQL 数据库引擎。SQLite 是世界上使用最广泛的数据库引擎。SQLite 内置于所有手机和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中。 更多信息...

SQLite文件格式稳定、跨平台且向后兼容,开发人员承诺在 2050 年保持这种状态。SQLite 数据库文件通常用作在系统之间传输丰富内容的容器 [1] [2] [3] 和数据的长期存档格式 [4]。有超过 1 万亿 (1e12) 个 SQLite 数据库在使用中。SQLite源代码 位于公共领域,每个人都可以免费用于任何目的。

sqlite下载

​sqlite3下载地址​​​ (4)编译sqlite
首先,把SQLite编译成动态链接库:
打开Visual Studio 2019,新建一个名为sqlite3的Visual C++ Win32工程,在工程向导页中选择工程的类型为 “DLL”, 并且把创建为空项目的复选框钩上。通过工程—>添加现有项…,把单一文件sqlite3.c添加到工程中。为了生成在链接sqlite3.dll时需要用到的lib文件,需要在工程中添加模块定义文件。根据sqlite3.h中列出的导出函数名
然后,把sqlite3.def文件拷贝到sqlite3工程下
sqlite3编译和使用_sql
最后生成sqlite3.dll和sqlite3.libsqlite3编译和使用_sql_02

添加模块定义文件
sqlite3编译和使用_数据库_03

sqlite3编译和使用_数据库_04

sqlite3编译和使用_sqlite_05

sqlite3编译和使用_#include_06
也可以在vs2019中建立一个空项目,编译
sqlite3编译和使用_数据库_07
在编译lib时:报错
sqlite3编译和使用_数据库_08
解决,可以看出,刚才在编译dll时,已经生成了pdb文件,这时候编译lib时,就产生了冲突,把debug下面的文件全部删除,即可编译成功
sqlite3编译和使用_database_09

sqlite使用

使用vs2019创建空工程
sqlite3编译和使用_sql_10
sqlite3编译和使用_sqlite_11

#include <stdio.h>
#include "sqlite3.h"
//#pragma comment(lib, "sqlite3.lib")

/* print a record from table outputed by sql statement */
static int callback(void* NotUsed, int argc, char** argv, char** azColName) {
int i;
for (i = 0; i < argc; i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");

}
printf("\n");
return 0;

}

int main(int argc, char** argv) {
sqlite3* db;
char* zErrMsg = 0;
int rc;

if (argc != 3) {
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
return(1);

}
rc = sqlite3_open(argv[1], &db); /* open database */
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return(1);

}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg); /* execute SQL statement */
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);

}
sqlite3_close(db); /* close database */
return 0;

}

​工程源码下载​