Softfocus BTree/ISAM v3.1

作者:Edmund P. Morgan
  • 制造商:Softfocus

  • 电子邮件:jon@tap.net

  • 网址:http://www.greymatter.co.uk/gmWEB/Items/BND00133.HTM

  • 价格:单用户 115 美元,多用户 175 美元

  • 评论员:Edmund P. Morgan

开发人员们,您是否曾经需要一种无需 RDBMS(关系数据库管理系统)开销即可存储数据的方法?现在您很幸运,因为 Softfocus 为您的数据管理需求提供了一种低成本解决方案(带源代码)。

文档

文档以 171 页手册的形式提供,内容简洁但信息丰富。它提供了目录、索引和附录。该手册首先解释了 BTree 和 ISAM(索引顺序访问方法)的概念。下一节将概念与有关在此产品下实施应用程序的说明联系起来。手册的大部分内容都用于解释 API(应用程序编程接口)。

该手册为您提供以下信息

  • 函数参数列表

  • 函数返回值

  • 返回值的消息文本

  • 错误意味着什么

  • 有关此功能的多用户(多任务操作系统)信息

  • 函数调用后文件指针的位置

  • 有关该功能的其他信息和描述

  • 自上个版本以来的任何更改

该手册还提供了大量示例,以指导您完成构建应用程序的过程。

安装

安装此产品非常简单——您只需将文件复制到硬盘即可。所有源代码、Makefile、配置文件和其他文件均可用,使编译变得容易。该产品支持各种 C 编译器和环境,并假定您熟悉 C 语言。我已在各种环境中使用过该产品(即 DOS、Linux、Windows 95、Windows NT、HP-UX、DEC UNIX、SGI Irix、Solaris 和 Dynix/PTX)。

软件

该软件发行版包含 120 多个文件,其中包括超过 15,000 行源代码。本产品可以支持以下功能

  • 数据库文件大小受磁盘空间限制

  • 记录大小最大为 65KB

  • 几乎无限数量的数据库文件同时打开(取决于操作系统)

  • 键(字符串、整数、二进制、长整数、浮点数、用户定义)

  • 一个索引或多个索引

  • 重复或不重复的键值

  • 升序和降序索引

该软件通过 API 可以轻松进行数据库应用程序开发,并且只有一个包含文件允许您访问 API。API 分为三个部分。第一个是高级 ISAM API。数据库布局基于您在构建应用程序时提供的 C 结构。这些 API 使您能够在不了解数据库管理底层细节的情况下编写程序。这些 API 的函数名称以 “bt3” 为前缀。此方案使您可以快速访问仅与这些高级 API 相关的信息。这些 API 的命名适当,不会分散您对应用程序的注意力。API 函数名称包括诸如 createopenaddclosedelete 等名称。这些函数执行以下任务

  • create:创建数据库。

  • open:打开数据库。

  • add:向数据库添加新记录。

  • delete:从数据库中删除记录。

  • close:关闭数据库。

许多其他 ISAM API 可以帮助您搜索数据库、分配内存、锁定和解锁数据库或记录、将记录刷新到数据库等。本产品包括可变长度和低级 BTree API。可变长度 API 管理具有不同长度的数据。低级 BTree API 处理所有数据库管理细节。当您使用 ISAM API 时,它们会调用 BTree API。由于我仅直接使用 ISAM API,因此我无法对其他 API 的使用发表过多评论。每个 API 都允许您访问以下信息

  • 函数返回值

  • 返回值的消息文本

如果手册中的示例不够,则发行版附带了大量演示和测试程序供您研究。该发行版还包括一个实用程序,用于修复与数据库索引和损坏相关的大多数问题。通常,我在操作现有数据库之前会调用此实用程序一次。

结论

我已经使用该产品超过五年了。我会将其推荐给任何需要数据库管理但又不想承担 RDBMS 开销的开发人员。该产品精简、快速,并且不需要大量磁盘空间。作为开发人员,您可以完全控制数据库管理应用程序。该产品易于移植(重新编译),并且手册提供了完整的信息。此外,分发您的应用程序无需许可证。Softfocus BTree 最好的地方在于,与 Linux 一样,它包含源代码。

Softfocus BTree/ISAM v3.1
Edmund P. Morgan 自 1983 年以来一直作为软件开发人员从事计算机行业。他最喜欢的环境是 Linux 和 C。他最有趣的项目涉及目前在业余时间为当地教堂的整个信息管理基础设施实现自动化。当然,Linux 是服务器操作系统和首选开发环境。可以通过 emorgan@cup.net 与他联系。
加载 Disqus 评论