我可以使用哪些最简单的数据库类型来与ADO一起使用?

4
我正在寻找一种方法,可以将数据库保存在单个文件中,无需服务器托管,并且具有使用ADO的功能(在Delphi中,特别是TADOConnection和/或TADOQuery)。请原谅我对此不熟悉的术语。我只熟悉SQL Server数据库,对其他任何数据库都不了解。事实上,我知道的读写文件的唯一其他方法是纯文本、INI和XML。至于任何官方的“数据库”,我一无所知。
因此,我想要做的是将单个文件作为数据库保存,类似于QuickBooks拥有单个“公司文件”的方式。我不应该有任何东西来托管数据,例如SQL Server。它需要与ADO兼容,以便我可以使用简单的selectupdatedelete等命令。它不需要像SQL Server那样复杂,具有关系、安全性等。但它确实需要具有与SQL Server相同的某些语法规则,如joinalterdistinct等命令。
我正在寻找最轻量级的方法来实现这一点。文件需要足够灵活,能够进行复制/粘贴(只要应用程序没有使用它),类似于Excel文件。事实上,我的最初想法是使用Excel,因为我知道我可以使用ADO,但我也不想要求安装Microsoft的Excel驱动程序(它必须假定用户计算机上安装了MS Office / Excel)。显然,它需要一些驱动程序,但我需要兼容所有地方的最标准方法。

为什么需要ADO?如果你消除了这个要求,就会打开其他选项,比如SQLite。 - afrazier
2
因为我们已经有16年的代码使用ADO组件。 - Jerry Dodge
这是一个类似的问题: https://dev59.com/mHVC5IYBdhLWcg3wpi98 - Jerry Dodge
3个回答

7
您可以使用MS-Access MDB文件。它可以通过Microsoft OLEDB Jet 4引擎(自Win XP以来已内置于Windows中)使用,非常适合本地桌面数据库应用程序,具有创建表格、主键、索引、查询/视图、事务、多用户、复制、压缩/修复等功能,几乎完美兼容MS SQL-Server SQL语法(因为MS-AccessMS SQL-Server的祖先)。
客户端机器上不必安装MS-Access产品(即MS Office)。无需安装额外的驱动程序或文件,并且可以完全集成现有的MS-Office产品。
编辑:MDB文件也可能是受保护/加密的。

2
如果您希望用户能够打开数据库并从Excel或邮件合并中链接到它,那么Access肯定是推荐的! - Birger
1
只要你理解它的限制,Access就非常好用。 - Kenneth Cochran
我实际上正在尝试不使用Access,因为1)它拥有比我需要的更多功能,2)如果可能的话,我不希望任何人打开这个数据库来查看它。使用Access会使这变得太容易了,我想让最终用户难以查看原始数据。 - Jerry Dodge
1
@JerryDodge,MDB文件可以使用用户名和密码进行保护/加密。拥有“比我需要的更多”总比拥有更少好;最终决定权在你手中……我不是为微软工作的。 - kobik
2
@JerryDodge,你完全错了。它与Excel毫不相似,也与Access.Application(使用Access构建数据库应用程序)无关。你将使用MS-Access来构建你的数据库结构和设计。一旦完成,你就有一个单独的MDB文件,从现在开始所有操作都将使用Delphi/ADO进行... - kobik
显示剩余2条评论

5

您有几种选项可以将数据存储在单个数据库文件中。

它们都可以通过使用ODBC或OLEDB驱动程序的ADO进行访问。我个人推荐使用Firebird,因为它是免费的、快速的、稳定的,还有一个嵌入式版本。


顺便发现了这个问题... http://stackoverflow.com/questions/78621/what-do-i-need-to-start-using-embedded-firebird-with-delphi - Jerry Dodge

1

这篇文章是一个非常有用的嵌入式数据库比较。在测试的数据库中,以下这些支持(odbc)、(oledb)或者(两者都支持),并且使用(单一)文件作为数据库:

  • Accuracer (odbc) (single)
  • NexusDB (odbc) (single v4 and newer)
  • Firebird (both) (single) - 多个odbc实现和商业IBProvider支持三种不同的连接ADO组件的方式。
  • TurboDB (odbc) (single v4 and newer)

注意:大多数这些数据库也提供了ADO.Net提供程序。

比较中的其他数据库(Advantage、ElevateDB、DBISAM和Apollo)使用每个表/索引方案的文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接