8

背景:

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

假设/约束

图书馆必须:

  • 支持本机(即非托管)C++
  • 32 位 Windows 2000/XP/2003
  • 视觉工作室 2005
  • 微软 SQL Server 2000 和 2005
  • 甲骨文 9 和 10
  • 运行时性能大于或等于 wxODBC
  • 支持多个 DBMS 的单个程序员 API(例如,不想为使用不同的 DBMS 编写不同的代码)

不错但可选:

  • 64 位 Windows 操作系统
  • 32 位和/或 64 位 Linux 操作系统
  • 微软 SQL 服务器 2008
  • 甲骨文 11
  • MySQL
  • 任何额外的 DBMS
  • 视觉工作室 2008
  • 开源
  • 运行时性能接近或等于原生 DBMS API

问题:

有哪些好的库(免费、开源或付费)可以从一个 API(包括 Oracle 和 Microsoft SQL Server)支持多个 DBMS,并且可以从本机 C++ 中使用?

请描述您过去在给定库方面的任何经验 - 好的或坏的 - 以及您为什么推荐或反对给定库,特别是关于上述假设和限制。

也可以看看:

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

4

5 回答 5

5

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

http://www.sqlapi.com/

于 2009-01-13T18:20:14.403 回答
3

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

我的一个雇主使用它。

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

于 2009-01-13T18:07:29.343 回答
3

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

于 2010-10-10T07:31:25.850 回答
2

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

于 2009-11-15T12:42:26.110 回答
2

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

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

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

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

于 2009-11-15T12:52:11.527 回答