sqlite3编译和使用

前言

 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.dll和sqlite3.lib在这里插入图片描述

添加模块定义文件
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
也可以在vs2019中建立一个空项目,编译
在这里插入图片描述
在编译lib时:报错
在这里插入图片描述
解决,可以看出,刚才在编译dll时,已经生成了pdb文件,这时候编译lib时,就产生了冲突,把debug下面的文件全部删除,即可编译成功
在这里插入图片描述

sqlite使用

使用vs2019创建空工程
在这里插入图片描述
在这里插入图片描述

#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;

}

工程源码下载

猜你喜欢

转载自blog.csdn.net/aoxuestudy/article/details/120957697
今日推荐