用于C ++的数据库访问库

背景:

我有一个使用本地C ++编写的应用程序,它使用wxWidgets工具包的wxODBC数据库访问库,它将从所有未来版本的wxWidgets中删除 。 我需要用支持下面概述的假设和约束的另一种数据库访问方法replace它。 我不需要replace使用本机DBMS API或ODBC,但它必须符合下面列出的限制。

假设/约束

图书馆必须:

  • 支持本机(即非托pipe)C ++
  • 32位Windows 2000 / XP / 2003
  • Visual Studio 2005
  • Microsoft SQL Server 2000和2005
  • Oracle 9和10
  • 运行时性能大于或等于wxODBC
  • 支持多个DBMS的单个程序员API(例如,不想为使用不同的DBMS编写不同的代码)

很好,但可选:

  • 64位Windows操作系统
  • 32位和/或64位Linux操作系统
  • Microsoft SQL Server 2008
  • Oracle 11
  • MySQL的
  • 任何额外的DBMS
  • Visual Studio 2008
  • 开源
  • 运行时性能接近或等于本地DBMS API

题:

有什么好的库可用 – 免费的,开源的或付费的 – 从单一的API(包括Oracle和Microsoft SQL Server)支持多个DBMS,并且可以使用本地C ++?

请描述过去的任何经验 – 好的或坏的 – 与特定的图书馆以及为什么你build议赞成或反对给定的图书馆,尤其是上面的假设和限制。

也可以看看:

https://stackoverflow.com/questions/74141/good-orm-for-c-solutions

我使用SQLAPI ++。 很值得一看。

http://www.sqlapi.com/

您可以使用SOCI http://soci.sourceforge.net或Wt :: Dbo, http ://www.webtoolkit.eu并查看Wt :: Dbo组件。

一个库是http://otl.sourceforge.net/

我的一个雇主使用它。

我不能告诉你它的性能如何与wxODBC相比,但它可能符合你的要求。

您可以检查Debea – SQL数据库访问和ORM for C ++。 它有内置wxWidgets的API。

Qt也是一个选项。 它支持到你想要的服务器的连接,而且使用起来非常简单。

http://doc.trolltech.com/4.4/sql-driver.html#supported-databases

在使用Qt时,您不需要针对所有Qt进行构建。 你可以例如只使用SQL部分,并将整个GUI部分留在外面。

由于最近LGPL版本,您也可以使用它专有的应用程序。