2008-09-20 64 views
1

我想构建和部署基于Windows的系统数据库应用程序,但需要住在下列约束内:共享文件数据库的建议

  1. 不能作为服务器运行(即,具有开放的端口);
  2. 必须能够与程序的其他实例(在其他机器上运行)共享数据库文件;
  3. 不得要求DBA进行维护;
  4. 运行时许可不需要额外费用。

此外,以下是不错的“功能”:

  1. 零安装(例如,没有注册表项,没有必要把文件在\的Windows \ ...等);
  2. “合理”的表现(是的,这是模糊的);
  3. “合理的”文件大小限制(每个表/文件至少1GB - 以防万一)。

我已经看到了这个问题
   为.NET嵌入式数据库,可以运行关闭网络
,但它并不完全回答这个问题对我来说。

我已经看到VistaDB site,但虽然看起来很有希望,但我对此没有亲身经历。

我也看过SQLite,虽然对于Goggle来说它似乎够好,但我(再次)对此没有亲身经历。

我很乐意使用基于Java的解决方案,因为它是跨平台的(尽管我的主要目标是Windows,我希望是灵活的),WebStart是一个非常好的分发软件的方式,但最常见的使用的DB(Derby和hsqldb)将不支持共享访问。

我知道我不是唯一一个正在努力尝试这样做的人,所以我希望能得到一些建议。

回答

1

我会去与SQLite。 SQLite绑定了所有的东西,它被广泛用作大量应用程序的嵌入式数据库。

+0

我想真正的问题是如何好表现,以及如何努力在多用户环境中的编码。 – JohnMeyers 2008-09-20 03:27:12

1

我在工作中使用SQLite,你应该记住的一件事是它的基于文件并使用文件锁来管理并发连接。当您有多个用户同时尝试使用数据库时,这不是一个很好的解决方案。然而,SQLite对于一个用户应用程序来说是一个很好的数据库,它的速度很快,占地面积很小,并且围绕它建立了一个繁荣的社区。

+0

而我的应用程序需要2-3位用户同时访问这些文件。 – JohnMeyers 2008-09-20 03:59:40

0

如果你有VStudio,那么SQL Server 3.5 Compact Edition如何?运行in-proc的MSSQL。

http://www.microsoft.com/sql/editions/compact/downloads.mspx

+0

我曾将此视为一种解决方案(我有经验在手持设备上运行它),但不认为它适合于此。这是一个非常“重”的安装,并可以在默认情况下做服务器的事情。但更重要的是,这意味着共享数据库文件。 – JohnMeyers 2008-09-20 13:28:52