一、下载sqlite
SQLite可以到官方站点下载http://www.sqlite.org/download.html
在VC中使用sqlite ,要下载sqlitedll-3_7_2.zip和sqlite-amalgamation-3_7_2.zip
二、编译过程
dll的压缩包中解压后有一个sqlite3.dll和一个sqlite3.def文件,并没有提供用于VC++6.0的lib文件,可以利用sqlite3.def文件生成,步骤如下:
1.将sqlite3.h(在sqlite-amalgamation-3_7_2.zip中)拷贝到C:\Program Files\Microsoft Visual Studio\VC98\Include目录下;
2.启动一个命令行程序,进入VC的安装目录C:\Program Files\Microsoft Visual Studio\VC98\Bin,在这个目录下面有一个LIB.exe文件,使用它就能生成sqlite3.lib文件,将sqlite3.def文件拷贝到同一目录下,然后在命令行输入如下命令:
LIB /MACHINE:IX86 /DEF:sqlite3.def
该命令生成两个文件:sqlite3.lib和sqlite3.exp
运行该命令时,如果提示找不到MSPDB60.DLL文件,可从其它目录拷贝至Bin目录下;
3.将生成的sqlite3.lib拷贝到C:\Program Files\Microsoft Visual Studio\VC98\Lib目录下,将sqlite3.dll拷贝到C:\WINDOWS\system32目录下;
4 写一个win32控制台应用程序调用sqlite的API,包含sqlite3.h头文件,并且要.将sqlite3.lib加入到工程链接中,Project->Settings,Link选项卡,Object/library modules加入sqlite3.lib,此时便可编译链接通过。
5. 在vc下编译sqlite源代码,生成sqlite3.exe, 出现can not find tcl.h 可以去掉tclsqlite.c或者在这个文件前面添加#define NO_TCL 去掉tcl的支持。在C盘建一个目录sqlite3,将sqlite3.exe拷过来,开一个命令行终端,进入此目录下,便可在终端中使用sqlite3命令建库和建表,使用查询等命令。
三、在VC/MFC中使用sqlite3 API
Win32控制台测试程序源码如下:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
int main(int argc, char* argv[])
{
sqlite3 *db;
int result;
char * errmsg = NULL;
char **dbResult;
int nRow, nColumn;
int i , j;
int index;
result = sqlite3_open("c:\\sqlite3\\test.db", &db);
if( result != SQLITE_OK )
{
printf("failed to open database!\n");
return -1;
}
result = sqlite3_get_table( db, "select * from student", &dbResult, &nRow, &nColumn, &errmsg );
if( SQLITE_OK == result )
{
index = nColumn;
printf( "total %d records\n", nRow );
for( i = 0; i < nRow ; i++ )
{
for( j = 0 ; j < nColumn; j++ )
{
printf( "segment name:%s segment value:%s\n", dbResult[j], dbResult [index] );
++index;
}
printf("-------\n");
}
}
sqlite3_free_table( dbResult );
sqlite3_close( db );
return 0;
}
运行截屏如下:
另外又写了个基于对话框的MFC测试程序,一个简易的学生成绩管理系统,测试在VC环境使用SQLITE数据库。运行截屏如下: