Unix / C中的数据库独立性

时间:2020-03-06 14:52:47  来源:igfitidea点击:

我们有一个用C编写的系统,该系统在Solaris&Linux下运行,该系统使用Sybase CT库访问Sybase数据库。
我们通过内部开发的DDL生成表定义,索引,存储过程和C代码,以减少工作量和错误。

我们希望实现数据库独立性,因此我们可以添加(作为第一个起点)Oracle支持。

我们正在考虑ODBC或者ESQL / C,但没有相关经验。

我们会建议什么解决方案(当然最好是便宜又容易的解决方案)。是否可以有一个单一来源的解决方案?

解决方案

ODBC将为我们提供比ESQL / C更多的可移植性选项。

我一直在使用iODBC访问SQL Server和mysql,到目前为止已经取得了不错的成绩。我认为它也适用于Oracle,但这取决于ODBC驱动程序,到目前为止还没有尝试过。

ODBC将编写更加可移植的系统,但是如果我们希望利用基础数据库,则必须谨慎地正确开发SQL,因为即使使用不同的ODBC,SQL本身也可能不是100%可移植到数据库中的司机。

iodbc
http://www.firstsql.com/iodbc/

或者unix odbc
http://www.unixodbc.org/

可能是"最便携"的选择之一。

问候
弗里德里希

我强烈建议使用SQLAPI ++(缺点是它是C ++库)。还有unixODBC,尽管我从未在代码中使用过它-仅在研究可移植数据库API时才涉及到它。 POCO还为数据库操作提供了一个统一的可移植API(尽管还是C ++),但是最后我检查了一下,POCO的部分还只是在开发的初始阶段。