Visual Studio 中使用 SQLite

工程中要用到的三个文件sqlite3.libsqlite3.dllsqlite3.h

三个参考链接:

http://www.cnblogs.com/likebeta/archive/2012/06/14/2549923.html

http://blog.csdn.net/zljjava/article/details/7741017

http://www.cnblogs.com/kfqcome/archive/2011/06/27/2136999.html


一个官网下载链接:

http://sqlite.org/download.html

从官网上下载下面两个文件,可能版本号不同

sqlite-amalgamation-3150100.zip

sqlite-dll-win32-x86-3150100.zip

解压得到所需的三个文件

sqlite3.h

sqlite3.def

sqlite3.dll


使用def生成lib文件

第一步:找到lib.exe所在目录

一般都在X:\Program Files\Microsoft Visual Studio\VC98\Bin下,在“运行”中输入cmd,然后切换到该目录

第二步:使用LIB命令生成.lib文件

很多网页上都介绍,使用LIB /DEF:sqlite3.def /machine:IX86即可生成,可是我使用它时遇到一些小问题。

这里就不说了,说说应该注意的几点问题吧。第一个,你的sqlite3.def要是没有在 X:\Program Files\Microsoft Visual Studio\VC98\Bin下,需要写全路径;第二,为了清楚起见,你需要注明.lib文件的输出路径。下面我给出一个完整的命令行:X:\Program Files\Microsoft Visual Studio\VC98\Bin>LIB /out:D:\test\sqlite3.lib /MACHINE:IX86 /DEF:D:\test\sqlite3.def,然后在X:\test\e中可以找到sqlite3.lib和sqlite3.exp

如果生成的过程中提示缺少文件,去vc安装目录搜索,复制到lib.exe文件下就行了。

为了让多个项目能够使用sqlite,我将最后需要的三个文件sqlite3.libsqlite3.dllsqlite3.h分别放在了软件安装目录的lib,bin,include文件夹下(必须添加到自己的项目中,才能在别人的电脑上运行)

需要使用时,添加下面的代码即可

#include "sqlite/sqlite3.h"

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

	sqlite3* db;
	int nResult = sqlite3_open16(dbPath, &db);
	if(nResult != SQLITE_OK) {
		TRACE(L"打开数据库失败:%s\n", sqlite3_errmsg16(db));
	} else {
		TRACE(L"数据库打开成功\n");
	}
	char* errmsg;
	nResult = sqlite3_exec(db, "create table fuck(id integer primary key autoincrement,name varchar(100))", NULL, NULL, &errmsg);
	if(nResult != SQLITE_OK) {
		sqlite3_close(db);
		TRACE(L"创建表失败:%s\n", sqlite3_errmsg16(db));
		return ;
	}
	CString strSql;
	for(int i = 0; i < 15; i++) {
		strSql += L"insert into fuck values(null,'hehe');";
	}
	TRACE(L"strSql:%s\n", strSql);
	nResult = sqlite3_exec(db, UnicodeToAnsi(strSql), NULL, NULL, &errmsg);
	if(nResult != SQLITE_OK) {
		sqlite3_close(db);
		TRACE(L"插入数据失败:%s\n", sqlite3_errmsg16(db));
		return ;
	}
	return ;


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual studio 2012 下 sqlite3的工程文件,生成32或64位的sqlite3库 This page explains how to compile SQLite with Microsoft Visual Studio.NET (aka VS.NET). Download Download and unzip the file sqlite_source.zip (or sqlite-amalgamation-x_x_x_x.zip). Do not use the .tar.gz files because they have not been pre-processed for use with Windows. Create a starter DLL project File > New > Project. Under Project Types, select Visual C++ Projects and then Win32. Choose the project template "Win32 Project". Give the project a name and click OK. When the "Win32 Application Wizard" appears, choose Application Settings. set the Application Type to DLL and check the box that says "Empty project". Click Finish. You now have a blank DLL project. Add the SQLite files to the project Project > Add Existing Item. Add all the .c and .h files that you unzipped, except for: tclsqlite.c and shell.c. Note: You may add tclsqlite.c and shell.c, but then you have to define the preprocessor-symbol NO_TCL. Click Project -> Properties, navigate to the C/C++-folder and choose "Preprocessor". In the field that says "Preprocessor definitions" add NO_TCL to the existing string, separated by a semicolon. Under "Code Generation" for "Runtime Library" make sure to pick static linking. /MTd (release) or /MTd (debug) Make a .DEF file A .def file should be placed in the project directory. Get the def file by downloading the zipped sqlite DLL file under the "Precompiled Binaries For Windows" in the download page. Add the sqlite[3].def file to the project. Under Project > Properties navigate to the Linker folder and choose "Input". In the field that says "Module Definition File" type sqlite[3].def. NOTE: You have to do this twice, once for the Debug configuration and once for the Release configuration. Compile! The next 3 steps maybe be required by some. I was able to build the DLL and produce a .lib file only following the above 12 steps. for VS 2005. In order to build the lib file so that an application can link against the sqlite[3].dll you will need to add a step to the post-build event. Right click on Project, select Properties, expand Build Events and type "LIB /DEF:\sqlite[3].def" into the Command line field, both for debug and release configurations, where is the location to the file sqlite[3].def. To compile 3.3.7(this may apply to other versions too), I had to do this extra step: Add the project directory to the include path, here's how to do it in details: Under Project > Properties navigate to the C/C++ folder and choose "General", In the field "Additional Include Directories" type "."(a single dot, which is the current directory) Repeat for each configuration (debug/release/Win32/x64). To compile 3.6.14.1 (maybe others too), I also had to: Go to Project > Properties. Open the C/C++ then Preprocessor folder. Add "SQLITE_ENABLE_COLUMN_METADATA" to the list of preprocessor definitions. Repeat for each configuration (debug/release/Win32/x64). How to make the SQLITE.EXE command-line utility There are some slight changes if you wanted to build the sqlite.exe command-line utility, instead of the DLL. To do that, when you're creating the project and you get to the "Win32 Application Wizard", choose "Console Application" instead of "DLL". Then, when you are adding files to the project, also add shell.c. Finally, don't include the .DEF file. The sqllite def for version 2 is. EXPORTS sqlite_open sqlite_close sqlite_exec sqlite_last_insert_rowid sqlite_error_string sqlite_interrupt sqlite_complete sqlite_busy_handler sqlite_busy_timeout sqlite_get_table sqlite_free_table sqlite_mprintf sqlite_vmprintf sqlite_exec_printf sqlite_exec_vprintf sqlite_get_table_printf sqlite_get_table_vprintf sqlite_freemem sqlite_libversion sqlite_libencoding sqlite_changes sqlite_create_function sqlite_create_aggregate sqlite_function_type sqlite_user_data sqlite_aggregate_context sqlite_aggregate_count sqlite_set_result_string sqlite_set_result_int sqlite_set_result_double sqlite_set_result_error sqliteMalloc sqliteFree sqliteRealloc sqlite_set_authorizer sqlite_trace sqlite_compile sqlite_step sqlite_finalize sqlite_progress_handler sqlite_reset sqlite_last_statement_changes

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值