Visual Studio 2017 中使用 SQLite3的方法

来源:互联网 发布:仿爱奇艺网站源码php 编辑:程序博客网 时间:2024/05/16 16:22

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

首先百度搜索“sqlite3下载“,搜索结果如下图:


下载后,可以看到下载后的软件文件夹中包含了sqlite3.dll, sqlite.def, 在sqlite-amalgamation-3170000目录内包含了sqlite3.h文件。(注意sqlite.def文件并没有直接带后缀.DEF,可以通过查看文件属性确定该文件为sqlite.def

 现在已经有了sqlite3.dllsqlite3.h文件,还需要sqlite3.lib。该文件是通过sqlite.def文件转换而来。转换方法如下:

    先找到lib.exe文件。该文件一般在Visual studio 软件的安装目录下,在我的WIN7系统中该目录为:


    该目录下有lib.exe

            

2   运行>cmd;并切换到lib.exe所在的目录下:不懂的可以百度下怎么在CMD中切换目录。

运行命令:lib  /out:F:\sqlite3\sqlite3.lib /MACHINE:IX86 /DEF:F:\sqlite3\sqlite3.def    /out:是.lib文件生成的位置,/MACHINE:IX86:表示机器类型,32位机器,/DEF:表示的是.def存放的位置。


运行完上面的命令之后就会在F:\sqlite3\目录下生成对应的.lib文件和.exp文件.如果生成的过程中提示缺少文件,去vc安装目录搜索,复制到lib.exe文件下就行了。

将最后需要的三个文件sqlite3.libsqlite3.dllsqlite3.h分别放在了软件安装目录的lib,bin,include文件夹下

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

#include"sqlite3.h"

#pragmacomment(lib,"sqlite3.lib")

  1. #include <iostream>  
  2. #include <string>  
  3. using namespace std;  
  4. #include "sqlite/sqlite3.h"  
  5. #pragma comment(lib,"sqlite/sqlite3.lib")  
  6.   
  7. int main()  
  8. {  
  9.     sqlite3* db;  
  10.     int nResult = sqlite3_open("test.db",&db);  
  11.     if (nResult != SQLITE_OK)  
  12.     {  
  13.         cout<<"打开数据库失败:"<<sqlite3_errmsg(db)<<endl;  
  14.         return 0;  
  15.     }  
  16.     else  
  17.     {  
  18.         cout<<"数据库打开成功"<<endl;  
  19.     }  
  20.     char* errmsg;  
  21.     nResult = sqlite3_exec(db,"create table fuck(id integer primary key autoincrement,name varchar(100))",NULL,NULL,&errmsg);  
  22.     if (nResult != SQLITE_OK)  
  23.     {  
  24.          sqlite3_close(db);  
  25.          cout<<"创建表失败:"<<sqlite3_errmsg(db)<<endl;  
  26.         return 0;  
  27.     }  
  28.     string strSql;  
  29.     for (int i=0;i<100;i++)  
  30.     {  
  31.         strSql+="insert into fuck values(null,'heh');";  
  32.     }  
  33.     cout<<strSql<<endl;  
  34.     nResult = sqlite3_exec(db,strSql.c_str(),NULL,NULL,&errmsg);  
  35.     if (nResult != SQLITE_OK)  
  36.     {  
  37.         sqlite3_close(db);  
  38.         cout<<"插入数据失败:"<<sqlite3_errmsg(db)<<endl;  
  39.         return 0;  
  40.     }  
  41.     return 0;  
  42. }