VC2005使用SQLite,适用于WIN32

Posted wanglixin1999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC2005使用SQLite,适用于WIN32相关的知识,希望对你有一定的参考价值。

首先、编译LIB

需要到SQLite网站下载sqlitedll-3_6_15.zip,以VS 2008为例:

在DOS命令行下运行如下代码,并且要把sqlite3.def放到这个目录下:
PATH = D:/Program Files/Microsoft Visual Studio 8/VC/bin;%PATH%
PATH = D:/Program Files/Microsoft Visual Studio 8/Common7/IDE;%PATH%
LIB /DEF:sqlite3.def /machine:IX86

之后,把sqlite3.lib拷贝到你的工程代码目录下,另外还需要把sqlite3.h和sqlite3.dll文件拷贝到你的
工程代码路径下(有关sqlite3.dll的生成请参考前些篇的文章)。
然后、在Visual Studio下使用。新建一个win32的控制台工程。
#include "win32_sqlite3.h"
#include "sqlite3.h"
#include <stdio.h>

win32_sqlite3::win32_sqlite3(void)



win32_sqlite3::~win32_sqlite3(void)




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

static int _sql_callback(void * notused, int argc, char ** argv, char ** szColName)

int i;
for ( i=0; i < argc; i++ )

printf( "%s = %s/n", szColName[i], argv[i] == 0 ? "NUL" : argv[i] );


return 0;



//int _tmain(int argc, _TCHAR* argv[])
int main(int argc, char * argv[])

const char * sSQL1 = "create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);";
const char * sSQL2 = "insert into users values('wang',20,'1989-5-4');";
const char * sSQL3 = "select * from users;";

sqlite3 * db = 0;
char * pErrMsg = 0;
int ret = 0;

// 连接数据库
ret = sqlite3_open("./test.db", &db);

if ( ret != SQLITE_OK )

fprintf(stderr, "无法打开数据库: %s", sqlite3_errmsg(db));
return(1);


printf("数据库连接成功!/n");

// 执行建表SQL

sqlite3_exec( db, sSQL1, 0, 0, &pErrMsg );
if ( ret != SQLITE_OK )

fprintf(stderr, "SQL error: %s/n", pErrMsg);
sqlite3_free(pErrMsg);


// 执行插入记录SQL
sqlite3_exec( db, sSQL2, 0, 0, &pErrMsg);

// 查询数据表
sqlite3_exec( db, sSQL3, _sql_callback, 0, &pErrMsg);

// 关闭数据库
sqlite3_close(db);
db = 0;

return 0;
;

最后,ctrl+F5,运行就ok了。

以上是关于VC2005使用SQLite,适用于WIN32的主要内容,如果未能解决你的问题,请参考以下文章

32位win7系统安装Python2.7不上!

VC学习笔记---ATL MFC CLR三个库的区别

关于win10安装VC++2005运行库的求助

Win32 API 类似于 CreateProcess,但适用于 bat/cmd/等。 (即使用 PATHEXT)

visual stdio2005 如何像vc++6.0一样编译和调试啊

vc++2005到2015都安装了,为啥还提示确实运行库