2010-07-07 116 views
1

我们有一个“大型”代码库,已经开发出来,它使用SQLite和NHibernate为我们的客户使用.NET 2。使用SQLite,我们可以通过Windows文件共享与db(甚至多个客户端)进行通信。大多数情况下,这对我们需要做的事完全足够了。在过去的几个月里,我们需要将我们的应用程序与一个非常小的应用程序进行整合,并且运行在Windows的定制版本上 - 并且删除了很多东西。没有.NET,我们不被允许使用文件共享。现在我们有一个问题。本地和客户端/服务器的数据库是什么?

我们正在寻找一种嵌入式数据库系统,使用NHibernate,可以使用客户机/服务器访问SQLite(生成的代码必须用C编写)。

简而言之:

  • 正常使用可能是与NHibernate和本地文件(可以作为服务运行瓦特/客户/服务器协议)
  • 其他用法将与在一个C库客户端/服务器时尚

在很多情况下,我们都希望两者兼得。

带包装库的SQLite是我们的第一反应,例如使用SQLitening。火鸟可能是一个额外的选择。我们安装的一些计算机可能已经运行了SQL Server(我不确定C是否支持SQL Server)。

任何其他(开源或商业)?

回答

1

如果你想真的轻量级,我发现CodeBase(isam)高效,易于剥离和重新链接。

否则SQLite是我经常用于便携式应用程序(嵌入式Linux,WinCE等) - 优先于Microsoft便携式数据库选项(如果适用)。

+0

基本代码似乎不支持NHibernate的,但肯定有C/C++的兼容性非常好。 – Anthony 2010-07-10 17:52:47

0
+0

这看起来非常稳固,可以替代大部分SQLite,但似乎不支持C/C++ API。我错过了什么? – Anthony 2010-07-10 17:50:07

+0

H2支持ODBC(使用PostgreSQL驱动程序)。但是,如果你不能使用.NET和Java,那么它非常棘手。您可以使用Excelsior JET创建本地版本或GCJ,但两者都不是很常见的方法。但我想主要的问题是你如何将你的应用程序从.NET转换到本地? – 2010-07-11 13:43:24