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

时间:2009-01-13 18:01:29

标签: c++ windows database linux unmanaged

背景:

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

假设/约束

图书馆必须:

  • 支持Native(即非托管)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 ++中使用吗?

请描述您以前的经历 - 好或坏 - 与给定的图书馆以及您为什么要针对特定​​图书馆提出建议,特别是在上述假设和约束方面。

另见:

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

5 个答案:

答案 0 :(得分:5)

我使用SQLAPI ++。非常值得一看。

http://www.sqlapi.com/

答案 1 :(得分:3)

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

答案 2 :(得分:2)

图书馆是http://otl.sourceforge.net/

我的雇主使用它。

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

答案 3 :(得分:2)

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

答案 4 :(得分:2)

Qt也是一种选择。它支持与您想要的服务器的连接,并且使用起来非常简单。

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

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

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