C++数据库访问,无需安装
C++数据库访问,无需安装
我正在寻找一个无需安装数据库服务器即可运行SQL语句的数据库。即,我需要能够仅凭数据库文件和任何外部库选择/插入/更新数据库的能力。
这是我的情况:
- 我正在使用C++解析一些格式奇特的二进制文件,并希望将它们存储到某种数据库中,以便更方便地访问数据。
- 一旦文件被插入到数据库中,我将使用C#编写一个用户可以与数据库交互的接口/ GUI。
- 我使用C++是因为它读取文件的速度快,并且我已经写过那部分。
- 我使用C#是因为它更容易进行GUI编程。
以下是我的要求:
- 数据库必须提供一种在C++中仅使用外部库运行命令的方法(无需安装)
- 我应该能够将数据库移动到任何(类似[Windows])计算机并运行我的应用程序
我相信通过使用ADO或JET等可以实现这一点,但我想听听其他选择。请在您的答案中提供数据库和C++引擎/库。
我的优先事项是:
- 轻量级
- 性能(插入/选择速度)
- 客户端代码的简洁性(即设置的容易程度)
谢谢大家。
在这里,你无法选择错的是SQLite。它足够小可以嵌入到许多应用程序中(例如,请参见此处这里的著名应用程序列表,从Photoshop到Apple Mail + Safari,Dropbox,Firefox,Chrome,Skype等),但也足够完整,可以覆盖您可能需要的大多数SQL方面。它还提供了出色的支持,并且在API和语言方面具有广泛的覆盖范围。
它可能会出现锁定和多个写访问的问题。但对于单个客户端来说,它应该完美地工作。
有趣的链接。我之前不知道SQLite如此受欢迎。我一定会尝试一下。谢谢!
C++ Database Access With No Required Installation问题的出现原因是询问如何在C++中访问数据库,而无需安装。为了解决这个问题,有人建议使用SQLite。SQLite是一种非常适合这种情况并且非常易于使用的数据库。它非常受欢迎,具有庞大的社区支持,体积小,跨平台,使用简单。还指出了可以使用其他语言实现SQLite,比如C#,甚至有Linq-to-SQLite。某些情况下SQLite在性能方面可能不太好,但是性能是很难衡量的,它取决于记录的大小、数据库的大小、关系的复杂性等等。建议先尝试一下,看看它是否适用于数据。如果决定使用SQLite,则需要从C#中访问它,之前的一个问题已经讨论了这个方面。还某些情况下Linq-to-SQLite,这对于喜欢Linq的人来说是个好消息。最后,提问者感谢了提供帮助的人,并表示将尝试使用SQLite,同时感谢提供了C#包装器的链接,省去了自己寻找的麻烦。