教程集 www.jiaochengji.com
教程集 >  数据库  >  sqlite  >  正文 SQLite数据库的使用

SQLite数据库的使用

发布时间:2014-07-20   编辑:jiaochengji.com
SQLite数据库的使用(1)

最近想找一个文件型数据库,并且独立,不用安装一些东西即可使用,后来朋友推荐给我SQLite,用了一段时间,觉得很不错,很适合那些非典型数据库软件的设计。

一、SQLite数据库的优势:

  1、零配置:无需安装和管理配置

  2、灵活:储存在单一磁盘文件中的一个完整的数据库

  3、存储量客观: 支持数据库大小至2TB

  4、源代码足够小:大致3万行C代码

  5、比Acess数据库要快,与MySQL的速度差不多

  6、简单:SQLite的API使用起来很方便

  7、良好注释的源代码、并且有着90%以上的测试覆盖率

  8、独立:没有额外依赖

  9、完全开源:你可以用于任何用途, 包括出售它

  10、支持多种开发语言:C/C++、PHP、Perl、Java、ASP.NET、Python

二、配置环境:

首先我们需要下载SQLite的Windows版本,地址如下:

windows版
www.sqlite.com.cn/Upfiles/source/sqlite-3_3_7.zip
www.sqlite.com.cn/Upfiles/source/sqlitedll-3_3_7.zip
www.sqlite.com.cn/Upfiles/source/sqlite-source-3_3_7.zip

sqlite-3_3_7.zip文件:这个是SQLite的可执行文件(包含sqlite3.exe文件)
sqlitedll-3_3_7.zip文件:这个是SQLite的动态链接库文件(包含sqlite3.def文件和sqlite3.dll文件)
sqlite-source-3_3_7.zip:这个是SQLite的源码文件(包含sqlite3.h等文件)

这些文件里面并没有给我们提供LIB文件,我们需要自己编译出LIB文件。具体方法如下:

注:假设我的VC++6.0安装目录为C:\Program Files\Microsoft Visual Studio

第一步:将sqlite3.def文件拷到C:\Program Files\Microsoft Visual Studio\VC98\Bin\目录下。

第二步:在C:\Program Files\Microsoft Visual Studio\VC98\Bin\目录下有lib.exe的可执行文件,这个lib.exe文件是VC++6.0的一个工具,它用来添加、 修改,合并LIB

文件。使用它我们就可以得到我们需要的SQLite3.lib文件了。打开命令行,输入如下命令。

C:\Program Files\Microsoft Visual Studio\VC98\Bin>LIB /MACHINE:IX86 /DEF:sqlite3.def

注:此时有可能会弹出一个警告说缺少MSPDB60.DLL文件,此时,我们到C:\Program Files\Microsoft Visual Studio目录下搜索MSPDB60.DLL这个文件,把这个文件复制到Bin文件夹中即可。

现在在C:\Program Files\Microsoft Visual Studio\VC98\Bin\目录下出现了sqlite3.lib文件和sqlite3.exp文件,我们要用到sqlite3.lib文件,将sqlite3.exp文件删去即可。

第四步:我们打开VC++6.0,新建一个MFC对话框工程,名字叫SQLiteSample。在工程目录下新建一个文件夹,名字为AppMySQL再将sqlite3.h,sqlite3.lib这二个文件复制到这个文件夹中。将sqlite3.dll复制到工程目录下。

到此为止,配置环境工作就做完了。

三、编程实现

编写一个简单的程序。首先在CSQLiteSampleDlg类的头文件顶部加上以下代码:

复制代码 代码如下:

#include "AppMySQL/sqlite3.h"
#pragma comment(lib, "AppMySQL/sqlite3.lib")

然后在OnInitDialog()方法中加入代码,加完代码后的OnInitDialog()方法如下:

BOOL CSQLiteSampleDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
   CString strAboutMenu;
   strAboutMenu.LoadString(IDS_ABOUTBOX);
   if (!strAboutMenu.IsEmpty())
   {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
   }
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE);    // Set big icon
SetIcon(m_hIcon, FALSE);   // Set small icon

// TODO: Add extra initialization here


sqlite3 *db=NULL;//数据库指针

CString Errstr;//错误字符串

int ret;

ret = sqlite3_open("first.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
if(ret != SQLITE_OK)
{
   Errstr = sqlite3_errmsg(db);

   MessageBox("can't open first.db:"+Errstr);
 
   sqlite3_close(db);//关闭数据库
 
}
else MessageBox("open first.db successfully!");

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

return TRUE; // return TRUE unless you set the focus to a control
}


这段代码用来打开一个数据库,当数据库不存在的时候就会新建一个。

您可能感兴趣的文章:

[关闭]
~ ~