`
cwqcwk1
  • 浏览: 86935 次
文章分类
社区版块
存档分类
最新评论

Windows下编译和使用SQLite数据库

 
阅读更多

SQLite是一款轻量级的本地数据库,支持Windows/Linux/Unix等等主流的操作系统,同时支持很多程序语言,比如 C++、C#、PHP、Java等

本篇主要讲述如何在Windows下编译和使用SQLite数据库。

一、编译准备

1、下载SQLite源代码:选择sqlite-amalgamation-X.zip,后面是版本号


二、编译过程

1、打开VC新建一个 Win32 DLL 空工程,命名为 sqlite3

2、解压sqlite-amalgamation-X.zip,把sqlite3.h、sqlite3ext.h、sqlite3.c添加到工程项目中

5、修改配置,在项目属性,常规下的配置类型,将动态库(.dll)改成静态库(.lib)

6、编译,然后在编译目录中找到sqlite3.lib

三、在项目中使用SQLite

1、新建一个win32 控制台应用程序,命名为sqlitetest

2、把sqlite3.h、sqlite3ext.h复制到工程目录下,并添加到工程项目中

3、把sqlite3.lib复制到工程目录下

4、修改sqlitetest.cpp,代码如下:

#include "stdafx.h"
#include "sqlite3.h"

#pragma comment(lib, "sqlite3.lib")

void print_row(int n_values, char** values)
{
	for (int i = 0; i < n_values; ++i)
		printf("%10s", values[i]);
	printf("\n");
}

int print_result(void* data, int n_columns, char** column_values, char** column_names)
{
	static int column_names_printed = 0;
	if (column_names_printed++ == 0)
		print_row(n_columns, column_names);
	print_row(n_columns, column_values);
	return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{

	sqlite3 *db = NULL;
	char *errMsg = NULL;
	int rc = sqlite3_open("test.db", &db);
	if( rc )
	{
		fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
		sqlite3_close(db);
		getchar();
		return 0;
	}
	else
		printf("open test.db successfully!\n");

	rc = sqlite3_exec(db, "BEGIN TRANSACTION;", NULL, NULL, NULL);
	rc = sqlite3_exec(db, "CREATE TABLE students(number varchar(10), name varchar(10), "
			"sex varchar(6), age varchar(2));", NULL, NULL, NULL);
	rc = sqlite3_exec(db, "INSERT INTO students VALUES('00001','Mary','female','15');"
			"INSERT INTO students VALUES('00002', 'John', 'male', '16');",
                        NULL, NULL, &errMsg);
	rc = sqlite3_exec(db, "SELECT students.* FROM students WHERE sex='female';",
                        print_result, NULL, &errMsg);
	rc = sqlite3_exec(db, "SELECT students.* FROM students WHERE sex='male';",
                        print_result, NULL, &errMsg);
	rc = sqlite3_exec(db, "COMMIT TRANSACTION;", NULL, NULL, NULL);

	printf("error code: %d\n", rc);
	printf("error message: %s\n", errMsg);

	sqlite3_close(db);

	getchar();
	return 0;
}

5、编译,正如代码所写,工程目录下会生成test.db数据文件,那么恭喜你,SQLite正常使用了


四、结束语

文章讲述如何在Windows下编译和使用SQLite,编译好的程序会以静态库的形式把SQLite集成到程序中。这样做的好处是SQLite集成到程序中,程序可以单独运行,不用多带一个dll文件,坏处就是程序文件体积会增大,显得臃肿。那么如果以dll的形式加载和使用SQLite,我将在下篇文章中讲述这个问题。


分享到:
评论

相关推荐

    WinForm操作SQLite 数据库

    本项目“WinForm操作SQLite数据库”旨在演示如何在Windows窗体应用中与SQLite数据库进行交互。下面将详细介绍这个项目中的关键知识点。 1. **WinForm**:WinForm是.NET Framework的一部分,它提供了创建桌面应用...

    Sqlite数据库加密小工具

    - **备份与迁移**:加密后的数据库只能在知道密钥的环境下使用,因此在备份或迁移数据库时,必须同时保存密钥。 - **版本兼容性**:不同的SQLite加密库可能不完全兼容,升级或降级时需谨慎,确保新旧环境都能处理...

    VC环境编译使用sqlite数据库全过程[参照].pdf

    ### VC环境编译使用sqlite数据库全过程详解 #### 一、前言 SQLite 是一款轻量级的嵌入式关系型数据库引擎,广泛应用于各种场景,包括桌面应用和移动设备等。由于其简单易用的特点,SQLite 成为了许多开发者的首选...

    sqlite数据库加密解密sqlcipher3.0.1.zip

    在"sqlite数据库加密解密sqlcipher3.0.1.zip"这个压缩包中,"txt.txt"文件可能是关于如何使用SQLCipher的指南或使用示例,它可能会涵盖以下内容: 1. **安装与集成**:指导如何将SQLCipher库集成到你的项目中,可能...

    nwjs(v0.14.7)中使用sqlite3所需的编译文件和使用教程

    你需要从源代码编译SQLite3,使其适配nwjs的运行环境。以下是编译步骤: 1. **安装编译环境**:确保你的系统已经安装了Node.js,Git,C++编译器(如GCC或Clang)以及Node.js的开发库。对于Linux系统,通常需要`...

    sqlite3嵌入式数据库加密

    总的来说,"sqlite3嵌入式数据库加密"涉及了SQLite3数据库与Qt的集成,使用SQLCipher库来实现数据加密,以及如何在Qt应用程序中创建、管理和测试加密的SQLite3数据库。这个主题对于那些需要在Qt应用中处理敏感数据的...

    win10系统编译的sqlcipher执行工具,库,头文件,可加密sqlite数据库

    win10系统编译的sqlcipher执行工具,库,头文件,可加密sqlite数据库; VS2017 x64编译sqlcipher-4.0.1,sqlcipher可执行,如果执行失败,将libcrypto-1_1-x64.dll放在C:\Windows\System32\文件夹下。 库和头文件...

    SQLite(创建数据库)

    2. **连接SQLite**:使用SQLite的命令行工具或者编程API来连接到SQLite数据库。例如,在命令行中,你可以输入`sqlite3`来启动SQLite shell。在编程环境中,如Python,可以使用`sqlite3`模块建立连接。 3. **创建...

    数据库sqlite 小型数据库

    `sqlite-3_7_2.zip`和`sqlitedll-3_7_2.zip`可能是SQLite的不同版本库,前者可能是SQLite的源代码或编译后的库文件,后者可能是Windows平台下的动态链接库文件,用于在Windows环境中调用SQLite功能。 在实际开发中...

    sqlite数据库--小型实时数据库

    SQLite数据库的API可编程性强,提供了C接口,同时也有许多语言的绑定库,如Python的sqlite3模块、Java的SQLiteJDBC等,使得开发者可以方便地在各种编程环境中使用SQLite。此外,SQLite还支持Unicode字符集,能处理...

    Sqlite数据库配置环境+步骤

    Sqlite是一款轻量级的、开源的、自包含的数据库管理系统,它不需要独立的服务器进程,可以直接嵌入到各种应用程序中。本篇文章将详细介绍如何配置...通过熟悉这些基本操作,您将能够顺利地配置和使用Sqlite数据库。

    sqlcipher4 可设置sqlite数据库密码

    1. **安装和集成**:在Windows环境下,你可以找到对应32位和64位的预编译库进行集成。对于开发人员来说,需要将这些库文件添加到项目中,并链接相应的动态库或静态库。 2. **设置数据库密码**:在初始化SQLite...

    SQlite.zip 使用Qt Creator编译sqlite3

    总结,使用Qt Creator编译SQLite是一种便捷的方式,尤其适用于Qt应用中集成SQLite数据库。通过自定义编译选项,你可以定制SQLite的功能集,以满足特定项目的需求。而Qt Creator的跨平台能力则保证了编译成果能够在多...

    sqlite数据库编辑工具SQLiteDatabaseBrowser

    4. **安装与使用**:在Windows环境下,用户只需下载并安装sqlitebrowser_200_b1_win文件,按照安装向导完成安装后,即可通过界面启动SQLiteBrowser,连接到SQLite数据库进行操作。 5. **安全性与性能**:尽管SQLite...

    vb6.0操作安卓sqlite数据库

    在VB6.0中操作安卓系统的SQLite数据库是一个跨平台的技术挑战,因为VB6.0主要设计用于Windows环境,而SQLite是轻量级的关系型数据库,常用于移动设备,如安卓APP。下面将详细介绍如何实现这一目标,以及相关知识点。...

    sqlite数据库

    在Windows上,你可以直接下载预编译的可执行文件。配置SQLite主要是通过设置环境变量或启动参数来完成,例如设定缓存大小、日志模式等。 三、数据操作 SQLite支持SQL标准的CRUD操作:创建(Create)、读取(Retrieve)...

    sqlite 数据库载入文件

    1. **独立性**:SQLite数据库文件是自包含的,可以随意复制和移动,无需担心依赖外部组件或数据库服务。 2. **跨平台**:SQLite支持多种操作系统,包括Windows、Linux、macOS等,可以在不同平台上无缝运行。 3. **...

Global site tag (gtag.js) - Google Analytics