DarkSide SQL Mini Version 1,嵌入式数据库






3.50/5 (27投票s)
C++ 中的嵌入式数据库库。
引言
在应用程序中提供本地数据存储是许多 C++ 程序员面临的一个实际问题。为了避免陷入低级文件处理例程和数据索引等琐事的困扰,大多数程序员倾向于使用商业数据库系统,即使只是为了最少的数据处理目的。如果您的应用程序不需要完整的 RDBMS 服务器的功能,那么一个插入到您的源代码中的小型高效数据库库将看起来是一个有趣的解决方案。DarkSide SQL Mini 旨在创建这样一个库。您可以将其视为测试版,我希望开发人员在稳定版本发布之前测试此代码并报告错误。您甚至可能会在您的许多项目中发现此测试版很有用。关于 DarkSide SQL Mini 最好的事情是,与其他的嵌入式数据库库不同,您不必学习一套新的 API。它提供了一个 SQL 子集,您可以使用它来定义模式和操作数据。您只需要学习使用两个类(Database
和 ResultSet
)和两个成员函数(execute()
和 executeQuery()
)!其他一切都是纯 SQL。
使用代码
DarkSide SQL Mini 是一个源代码库。将所有 CPP 文件从 \dsqlm_1\cpp 文件夹复制到您的项目工作目录,将 \dsqlm_1\include 目录添加到您的包含路径,将您的目标代码与 dsqlm_1\libdb41s.lib 链接,然后您就完成了。您已经将一个不错的数据库系统嵌入到您的应用程序中。现在开始学习一些 SQL 课程...
首先在您的 CPP 文件中包含 dsqlm.h
#include "dsqlm.h" using namespace dsqlm;
接下来创建一个数据库对象
Database db("zoo");
如果文件夹 zoo 不存在,这将创建该文件夹。要创建一个表,请调用 CREATE TABLE
命令。
db.execute("CREATE TABLE animals(name varchar(40) indexed,age int,dob date)");
使用 INSERT
命令插入数据
db.execute("INSERT INTO animals VALUES('Joe',2,'2001-2-20')");
SELECT
命令用于搜索和检索数据
ResultSet rslt = db.executeQuery("SELECT * FROM animals WHERE age > 1"); while(rslt.next()) { cout << rslt.getString(1) << rslt.getString(3) << endl; }
以上代码将打印年龄超过 1 的所有动物的姓名和出生日期。除了这些命令之外,DarkSide SQL Mini 还支持 DELETE
、DROP TABLE
、DROP DATABASE
和 OPTIMIZE
命令。安装包包含有关该库的详细文档。
在演示代码中,您将找到一个完整的可运行程序,它演示了各种 DarkSide SQL 命令的用法。按照 DarkSide SQL Mini 帮助文件中的说明编译此代码。
如果您需要一个完整的 RDBMS 服务器,您可以 免费下载 DarkSide SQL Server。
历史
- 创建于:2003 年 11 月 23 日
- 更新于:2003 年 11 月 27 日:修复了逻辑表达式解析中的错误。