C / C ++的多数据库库有哪些替代方案?

时间:2012-01-09 00:08:21

标签: c++ c database

我想编写一个应该能够连接到多个数据库的应用程序(这将在启动时由参数配置)。应用程序将为每个数据库引擎提供不同的查询,这不是问题。

问题是我希望能够连接到不同的数据库引擎。 Java有JDBC,Perl有DBI。 C ++有什么作用?

更重要的是,我不想使用过于严格的许可证(商业版)的数据库驱动程序。 GPL可能 - 但我想避免这种情况。

4 个答案:

答案 0 :(得分:1)

实际上,每个存在的数据库引擎都提供ODBC接口。我认为JDBC实际上是ODBC的克隆。

然后,您想要的是ODBC API的C ++包装器,它实现RAII以确保在异常情况下释放数据库资源等。例如:http://simpledb.sourceforge.net/

答案 1 :(得分:0)

有旧的OLE连接。使用OLE,只要安装了正确的驱动程序,就可以连接到平面文件,Oracle,SQL或MySql数据库。

答案 2 :(得分:0)

ODBC最兼容,也是最低级别的。 OLE DB更高级别,更易于使用,因此,如果您找到所有可能的数据库系统的OLE DB提供程序,那么这是可行的方法。否则,ODBC是您的选择,因为几乎所有数据库系统都支持它。

编辑:查看此链接:http://blogs.msdn.com/b/sqlnativeclient/archive/2011/08/29/microsoft-is-aligning-with-odbc-for-native-relational-data-access.aspx这使ODBC成为唯一正确的选择。 :)

答案 3 :(得分:0)

GPL版本2软件可以使用来自公司 Codesynthesis 的C ++对象关系映射系统 ODB

http://codesynthesis.com/products/odb/

这是一篇博客文章,其中描述了为什么他们选择使用本机C API而不是ODBC来连接数据库。

http://codesynthesis.com/~boris/blog/2011/12/09/oci-mingw/

速度是其中一个原因。