(Visual)C ++的数据库抽象层

时间:2008-09-08 16:45:24

标签: c++ database

从C ++访问不同的数据库有哪些选择? 换句话说,ADO还有哪些替代方案? 有什么优点和缺点?

4 个答案:

答案 0 :(得分:2)

  1. Microsoft ODBC
  2. MFC ODBC类,例如CDatabase
  3. OleDB(通过COM)。
  4. 您可以随时浏览per-RDBMS本机库(例如SQL Server native library
  5. DAO(不要)。
  6. 第三方ORM提供商。
  7. 我建议默认使用ODBC或OleDB。本地库真的限制你,DAO并不好玩,没有很多很棒的第三方ORM for C ++ / Windows。

答案 1 :(得分:1)

尽管这个问题及其答案已有几年历史,但对于像我这样的人来说,这些问题仍然很有价值。出于这个原因,我想添加Qt C ++框架的QtSql模块作为数据库连接的选项。

请注意,我一般都熟悉Qt,但对QtSql没有特别的经验。

优点(如果你只为QtSql模块选择Qt,那么也应该适用一些): Qt是跨平台的。根据我的经验,Qt设计精良,使用起来非常直观,并且记录得非常好。它已经存在了很长一段时间,由一个活跃的社区维护,并由诺基亚支持,所以它不会在一夜之间无法使用。自2009年以来,Qt已获得LGPL许可,因此即使是商业应用也是一种真正的免费选择。

缺点: Qt不小。您将向项目中引入QString等新类型。 Qt是根据LGPL许可的,因此即使在商业应用程序中也需要确认它的使用。

答案 2 :(得分:0)

有一件事 - 如果速度很重要并且您的代码不需要可移植,那么使用本机库可能是值得的。

我对SQL Server知之甚少,但我知道Oracle OCI调用比使用ODBC更快。但是,它们将您与Oracle的SQL版本联系在一起。 SQL Server以同样的方式是有意义的。

答案 3 :(得分:0)

POCO Data库,它支持ODBC,MySQL和SQLite。部分免费开源POCO C++ Libraries