【问题标题】:What are the simplest database types which I can use with ADO?我可以与 ADO 一起使用的最简单的数据库类型是什么?
【发布时间】:2012-03-30 00:11:20
【问题描述】:

我正在寻找一种方法,可以将数据库保存在一个文件中,无需服务器托管它,并且能够使用 ADO(在 delphi 中,特别是 TADOConnection 和/或 TADOQuery)。请原谅我在这方面缺乏术语。我只熟悉 SQL Server 数据库,对其他数据库一无所知。事实上,我所知道的读/写文件的唯一其他方法是纯文本、INI 和 XML。至于任何官方的“数据库”,我一无所知。

所以我想做的是保留一个文件作为数据库,类似于 QuickBooks 有一个单一的“公司文件”。我不应该有任何东西来托管数据,例如 SQL Server。而且它需要兼容ADO,所以我可以使用简单的selectupdatedelete等。它不需要复杂到有关系,安全等。但它确实需要有一些与 SQL Server 相同的语法规则,例如joinalterdistinct 等命令。

我正在寻找最轻量级的方法来做到这一点。文件需要足够灵活,以便能够复制/粘贴(只要应用程序不使用它),类似于 excel 文件。事实上,我最初的想法是使用 Excel,因为我知道我可以使用 ADO,但我也不想需要 Microsoft 的 excel 驱动程序(它必须假设 MS Office / Excel 安装在用户的计算机上)。它显然需要一些驱动程序,但我需要最标准的方法,它在任何地方都兼容。

【问题讨论】:

  • 为什么需要 ADO?如果您消除该要求,它会打开其他选项,例如 SQLite。
  • 因为我们已经有 16 年的使用 ADO 组件的代码
  • 这里有一个类似的问题:stackoverflow.com/questions/222699/…

标签: sql-server database delphi ado delphi-xe2


【解决方案1】:

您可以使用MS-Access MDB 文件。它可以通过 Microsoft OLEDB Jet 4 引擎使用(至少从 Win XP 开始就内置在 Windows 中)并且非常适合本地桌面数据库应用程序,能够创建表、PK、索引、查询/视图、事务、多- 用户、复制、压缩/修复等等,几乎完美兼容MS SQL-Server SQL 语法(因为MS-AccessMS SQL-Server 的祖先)。
MS-Access 产品(即MS Office不需要必须安装在客户端计算机上。 无需安装额外的驱动程序或文件,并且可以与现有的 MS-Office 产品完全集成。


编辑:MDB 文件也可以是 Protected/Encrypted

【讨论】:

  • 如果您希望用户也能够从 Excel 或 mailmerge 打开数据库并链接到它,当然推荐使用 Access!
  • 只要你了解limitations,访问就很棒
  • 我实际上是在尝试不使用 Access,因为 1) 它的功能超出了我的需要,2) 如果有的话,我不希望任何人自己打开这个数据库来查看它。使用访问权限让这种方式变得过于简单,我想让最终用户难以看到原始数据。
  • @JerryDodge,MDB 文件可以使用用户名 + 密码进行保护/加密。拥有“比我需要的更多”总比拥有更少;)最终这是您的选择……我不是为 MS 工作。
  • @JerryDodge,你完全错了。它 没有 像 Excel,与 Access.Application (Building DB applications with Access) 无关。您将使用 MS-Access 构建您的数据库结构和数据库设计。完成后,您将拥有一个 MDB 文件,并且从现在开始使用 Delphi/ADO...
【解决方案2】:

您有多种选择将数据存储在单个数据库文件中。

所有这些都可以使用 ODBC 或 OLEDB 驱动程序通过 ADO 访问。我个人推荐的是 Firebird,因为它免费、快速、稳定并且有 Embedded 版本。

【讨论】:

【解决方案3】:

This 是许多嵌入式数据库的非常有用的比较。测试的这些支持(odbc)、(oledb)或(两者)并为数据库使用(单个)文件:

  • Accuracer (odbc)(单)
  • NexusDB (odbc)(单 v4 和更新版本)
  • Firebird(两者)(单一)- 多个 odbc 实现和商业 IBProvider 支持三种不同的方式连接到 ADO 组件。
  • TurboDB (odbc)(单 v4 和更新版本)

注意:其中大多数也提供 ADO.Net Providers。

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

【讨论】:

    猜你喜欢
    • 2012-06-08
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多