SQLite






4.36/5 (13投票s)
SQLite 访问 C++ 类。
引言
这些 C++/MFC 类简化了从 MFC 应用程序访问 SQLite 数据库的过程。SQLite 原生 API 非常简单,文档也写得很好,所以你大概用一天就能开始使用它——而有了这两个类,你可以在几分钟内完成同样的工作。;)
请下载包含示例应用程序的完整源代码 这里。
Using the Code
要将 SQLite 访问添加到你的 MFC 应用程序中,请将示例应用程序 \database\ 文件夹中的文件添加到你的项目中。之后,请
#include
SQLiteDatabase.h 和 SQLiteRecordset.h 到你的源代码中- 创建一个
CSQLiteDatabase
类的实例。将它作为你的CWinApp
应用程序类或应用程序窗口类的一个成员是一个好主意 - 使用
CSQLiteDatabase::Connect()
方法连接到数据库。 - 如果你需要启动一个不返回
recordset
的查询,请使用BOOL CSQLiteDatabase::Query(LPCTSTR szQuery, CString &sError)
方法 - 如果你需要启动一个返回
recordset
的查询,请- 创建一个未初始化的(
NULL
)指向CSQLiteRecordset
类实例的指针 - 使用
BOOL CSQLiteDatabase::Query(LPCTSTR szQuery, CString &sError, CSQLiteRecordset **ppRecordset)
方法,将你在上面创建的指针的指针作为第三个查询参数传递 - 使用
CSQLiteRecordset::Next()
方法遍历记录 - 使用
CSQLiteRecordset::AsInteger(int number), CSQLiteRecordset::AsString(int number)
等方法从数据库读取数据 - 完成数据读取后,使用
CSQLiteRecordset::Close()
方法
- 创建一个未初始化的(
- 数据库操作完成后,请使用
CSQLiteDatabase::Disconnect()
方法关闭数据库连接。
使用示例
以下是演示类用法的代码。这段代码片段打开一个数据库,将该数据库中的记录打印到屏幕上,然后关闭与数据库的连接
#include "SQLiteDatabase.h"
#include "SQLiteRecordset.h"
void printDatabase(void)
{
// connecting to the database
CString sError;
CSQLiteDatabase sqlDatabase;
if (!sqlDatabase.Connect("C:\\database.sqlite", NULL, NULL, sError)
{
AfxMessageBox("Failed to connect to the database: " + sError);
return;
}
// opening the recordset
CSQLiteRecordset *pRecordset = NULL;
if (!sqlDatabase.Query
("SELECT last_name FROM employee", sError, &pRecordset))
{
AfxMessageBox("Failed to query the database: " + sError);
sqlDatabase.Disconnect();
return;
}
// looping thru records
while (pRecordset->Next())
AfxMessageBox(pRecordset->AsString(0)); // displaying the recordset
// field #0 value on the screen
// closing the recordset and disconnecting from the database
pRecordset->Close();
delete pRecordset;
pRecordset = NULL;
sqlDatabase.Disconnect();
}