【问题标题】:C++ Database Access With No Required Installation无需安装即可访问 C++ 数据库
【发布时间】:2011-06-04 18:39:38
【问题描述】:

我正在寻找一个无需安装数据库服务器就可以运行 SQL 语句的数据库。 IE。我需要能够选择/插入/更新仅给定数据库文件和任何外部库的数据库。

这是我的情况:

  • 我正在使用 C++ 解析许多格式奇特的二进制文件, 我想将它们存储到某种类型的数据库中以提供更多 方便地访问数据。
  • 文件插入数据库后,我将使用 C# 编写一个界面/GUI,用户可以通过它与数据库进行交互。
  • 我使用 C++ 来加快读取文件的速度,因为 这部分我已经写过了。
  • 我使用 C# 是因为它更容易进行 GUI 编程。

这是我的要求:

  1. 数据库必须提供一种仅使用外部库(无需安装)在 C++ 中运行命令的方法
  2. 我应该能够将数据库移动到任何(类似 [Windows])计算机上并运行我的应用程序

我相信这对于使用 ADO 或 JET 或类似工具的 MS Access *.mdb 文件是可能的,但是,我想听听一些替代方案。请在您的答案中提供数据库和 C++ 引擎/库。

我的优先事项是:

  1. “精简版”
  2. 性能(插入/选择速度)
  3. 客户端代码简单(即设置的容易程度)

谢谢大家。

【问题讨论】:

  • 我首先想到的是MS Access。这是一个非常强大的工具。我的主要反对意见是它对于一些白痴“超级用户”来说太强大了。很容易得到意想不到的结果,而且很难通过多层查询进行跟踪。但是,如果您知道自己在做什么,那么,为什么不呢?如果您发现需要更多马力,您可以随时迁移到其他地方。
  • @DOK:谢谢。 Access 的一个优点是 Office 安装在多台计算机上,这将非常方便。此外,在我看来,与 Microsoft 产品保持一致是一个加分项。我还研究了 SQL Server CE,但我对 C++ 资源不满意。前段时间我实际上将 Access 用于 C# 项目,它适用于我的目的,但我发现它有点缺乏功能。

标签: c# c++ sql database


【解决方案1】:

您需要查看SQLite。它非常适合这种情况并且非常易于使用。它非常流行(大型社区)、紧凑、跨平台且易于使用。

还有其他语言的 SQLite 实现。例如,您还可以使用 C# 访问 SQLite 数据库。甚至还有一个 Linq-to-SQLite。

【讨论】:

  • +1,完全同意。然而,OP 应该知道 SQLite 在性能上并不是那么好(这是一个列出的优先级)。
  • 是的。但是性能可能无法衡量。这一切都取决于记录的大小、数据库的大小、关系的复杂性等。我建议先试试看它是否适用于数据。
  • 如果他决定使用 SQLite,他将需要从 C# 访问。上一个问题涵盖了这方面:stackoverflow.com/questions/93654/…
  • 感谢您提供的信息。我喜欢 Linq,所以 Linq-to-SQLite 是个好消息。不幸的是,我只能选择一个答案,所以 Dirk 得到了复选标记,因为他首先发布(大约 2 分钟):) @Chris:我会记住你的评论。我要试一试 SQLite,看看它是否适合我。谢谢! @Jerry:我有点假设几乎所有可能出现的数据库都会有一个不错的 C# 包装器,但你已经为我节省了搜索。感谢您的链接!
【解决方案2】:

SQLite 在这里不会出错。

它足够小,可以嵌入到许多应用程序中(请参阅 here 以获取著名应用程序列表,从 Photoshop 到 Apple Mail + Safari、Dropbox、Firefox、Chrome、Skype 等),但足以涵盖您可能需要的大多数 SQL 方面。在 API 和语言方面的支持也很强大。

它可能存在锁定和多次写入访问的问题。但是对于单个客户端,它应该可以正常工作。

【讨论】:

  • 有趣的链接。我不知道 SQLite 如此受欢迎。肯定会试一试。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 2012-09-28
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
相关资源
最近更新 更多