SQLite在VC下的使用

来源:互联网 发布:最好网络理财服务产品 编辑:程序博客网 时间:2024/06/05 08:19
一. 准备工作:(1)在SQLite的官方网站下载Windows平台下的3.5.0版本的SQLite, 下载地址:http://www.sqlite.org/sqlitedll-3_5_0.zip 压缩文件中包含了sqlite3.dll和sqlite3.def文件. 用LIB命令生成用于连接(LINK)使用的lib文件:LIB /DEF:sqlite3.def /machine:IX86这样就生成了:sqlite3.lib 和 sqlite3.exp 两个文件sqlite3.lib文件是我们连接程序所使用的.(2)在SQLite官方网站下载SQLite3的源程序, 下载地址:http://www.sqlite.org/sqlite-source-3_5_0.zip 解压出sqlite3.h文件(3)将(1)和(2)中得到的文件放在sqlite3_lib目录(需要新建)中, 此时sqlite3_lib目录下应该有:sqlite3.hsqlite3.dllsqlite3.libsqlite3.def等文件.二. 编写例子程序:(1)打开VS2005创建一个新的项目:项目类型: Visual C++模板: Win32控制台应用程序将"准备工作"中建立的sqlite3_lib目录复制到你的项目所在的目录下, 然后在VS2005的IDE中对此项目进行如下的设置:选择菜单: "项目" -> "(项目名称) 属性...", 在弹出的对话框中选择"配置属性"->"链接器"->"输入", 在"附加依赖项"中输入./sqlite3_lib/sqlite3.lib;然后继续在对话框中选择"配置属性"->"C/C++"->"预编译头", 在"创建/使用预编译头"中选择"不使用预编译头";然后"确定".(2)编写代码#include <stdio.h>#include <stdlib.h>#include "./sqlite3_lib/sqlite3.h"static int _callback_exec(void * notused,int argc, char ** argv, char ** aszColName){int i;for ( i=0; i<argc; i++ ){printf( "%s = %s/n", aszColName[i], argv[i] == 0 ? "NUL" : argv[i] );}return 0;}int main(int argc, char * argv[]){const char * sSQL = "select * from t1;";char * pErrMsg = 0;int ret = 0;sqlite3 * db = 0;ret = sqlite3_open("./prog.db", &db);if ( ret != SQLITE_OK ){fprintf(stderr, "Could not open database: %s", sqlite3_errmsg(db));exit(1);}printf("Successfully connected to database/n");sqlite3_exec( db, sSQL, _callback_exec, 0, &pErrMsg );if ( ret != SQLITE_OK ){fprintf(stderr, "SQL error: %s/n", pErrMsg);sqlite3_free(pErrMsg);}sqlite3_close(db);db = 0;return 0;}

原创粉丝点击