3

我正在寻找支持隔离存储的嵌入式数据库引擎。目前我知道 VistaDB。你还有什么可以推荐的?

要求很简单:

  • xcopy 部署
  • 支持隔离存储
  • 最好是免费的

请注意,使用 IS 时您不知道文件的确切路径。

4

5 回答 5

1

劳埃德的回答之后,有一个名为uSqlite的 sqlite 包装库,它应该可以直接或通过最小的改动实现您所追求的目标。


为了详细说明(对于 Aku 的后续问题),我建议修改uSQLstPoll()例程(包含在 uSQLst.c 中)。在这个阶段,您拥有来自连接到您的客户端的端口和地址信息(包含在 sockaddr 中)。根据该信息,您可以修改uSQLst结构,以修改您要连接到的本地数据库文件的文件名。

免责声明:请注意,这是基于少量调查的可能解决方案。建议在部署之前进行更彻底的调查。

于 2008-09-30T12:12:12.293 回答
1

VistaDB似乎支持隔离存储。我已经使用它将近一年了,并且对它非常满意。

它不是免费的,但第 4 版的起价为60 美元(即将发布)。有一个免费的Express Edition,但这仅适用于非商业项目。

于 2009-09-20T16:55:46.787 回答
0

Sqlite 非常适合嵌入并且是免费的。

它不直接支持隔离存储,但是看起来自己调用隔离存储 API 并将生成的文件名作为它应该使用的文件名传递给 Sqlite 是相当简单的。

于 2008-09-20T15:13:41.967 回答
0

我知道这个问题已经很老了,但是 VistaDB 确实支持独立存储并且是 XCopy 可部署的。虽然我们没有免费版本,但它是一个商业产品。

查看关于VistaDB 优势的 SO 帖子,了解有关我们支持的其他内容的更多信息。

独立存储支持不仅仅是不知道您的文件名。您必须使用流,您必须不需要文件级锁定,您不能在同一路径中创建临时文件,您必须了解 UAC 和空间限制。

AFAIK VistaDB 是唯一支持独立存储的嵌入式 sql 数据库。

于 2009-10-20T04:16:41.723 回答
-1

你可以用Firebird Embedded做类似的事情。
虽然它本身不支持独立存储,但为每个用户创建一个新数据库应该很容易。

于 2008-09-20T15:15:10.887 回答