无需安装的C++数据库访问

Eri*_*ric 4 c# c++ sql database

我正在寻找一个数据库,我可以运行SQL语句而无需安装数据库服务器.即我只需要数据库文件和任何外部库就能选择/插入/更新数据库.

这是我的情况:

  • 我正在使用C++来解析许多奇怪格式化的二进制文件,我想将它们存储到某种类型的数据库中,以便更方便地访问数据.
  • 将文件插入数据库后,我将使用C#编写用户可以与数据库交互的接口/ GUI.
  • 我正在使用C++来读取文件的速度,因为我已经编写了那部分内容.
  • 我正在使用C#,因为它更容易进行GUI编程.

这是我的要求:

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

我相信这可以使用ADO或JET等MS Access*.mdb文件,但是,我想听听一些替代方案.请在答案中提供数据库和C++引擎/库.

我的优先事项是:

  1. "精简版" -ness
  2. 性能(插入/选择的速度)
  3. 客户端代码简单(即设置起来容易)

谢谢你们.

Jor*_*mer 6

你需要研究SQLite.它非常适合这种情况,非常易于使用.它非常受欢迎(大型社区),紧凑,跨平台,易于使用.

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

  • 真正.但是,衡量绩效可能很模糊.这一切都取决于记录的大小,数据库的大小,关系的复杂性等.我建议首先尝试查看它是否与数据一起使用. (3认同)

Dir*_*tel 5

你不能在这里使用SQLite.

它足够小,可嵌入到许多应用程序中(例如,请参阅此处查看着应用程序列表,包括从Photoshop到Apple Mail + Safari,Dropbox,Firefox,Chrome,Skype等),但其完整性足以覆盖大多数SQL方面需要.非常好的支持,以及API和语言的广泛覆盖.

它可能存在锁定和多次写入访问的问题.但对于单个客户端,它应该完全正常.