2

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

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

我们正在考虑 ODBC 或 ESQL/C,但没有使用它们的经验。

您会建议什么解决方案(当然,最好是便宜且简单的解决方案)。是否有可能拥有单一来源的解决方案?

4

5 回答 5

3

我强烈推荐SQLAPI++(可能有缺点,它是一个 C++ 库)。还有unixODBC,尽管我从未在代码中使用过它——只是在研究可​​移植数据库 API 时才接触到它。POCO 还为数据库操作提供了一个统一的、可移植的 API(尽管还是在 C++ 中),但最后我检查了一下,POCO的那部分只是处于开发的初始阶段。

于 2008-09-29T15:34:36.090 回答
1

ODBC 将帮助您编写更便携的系统,但如果您希望利用底层数据库,则必须小心正确开发 SQL,因为 SQL 本身可能无法 100% 跨数据库移植,即使使用不同的 ODBC司机。

于 2008-09-29T15:29:33.513 回答
1

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

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

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

问候弗里德里希

于 2008-09-29T15:32:01.570 回答
0

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

于 2008-09-29T15:20:51.583 回答
0

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

于 2008-09-29T15:27:27.870 回答