首页 > 解决方案 > C 中是否有针对不同 RDBMS 的统一 API?

问题描述

我喜欢 Java 的 JDBC 和 Python 的 DB-API 的想法,它们都为访问不同的关系数据库管理系统提供了统一的 API。

在 C 中是什么样的?

C 中是否有针对不同 RDBMS 的统一 API?

我还没有找到,或者我可能会错过它。这样的努力是否成功?POSIX 似乎没有定义一个统一的 API 来访问 RDBMS。

谢谢。

注意:我尝试阅读 C 语言中的 libpq for postgresql,但感觉与 JDBC 和 DB-API 相比,postgresql 特定的 API 很复杂。我还没有检查特定于 sqlite 或特定于 mysql 的 API,但希望它们与 libpq 的 API 不相似。

标签: mysqlcdatabasesqlitelibpq

解决方案


1989 年,Oracle、Informix、Ingres、DEC、Tandem、Sun 和 HP 组成了SQL 访问组,并定义了调用级接口以允许 C(和 COBOL)程序访问 SQL 数据库。如今,这个接口规范不是由 POSIX 而是由 ISO/IEC 管理(因此是官方 SQL 标准的一部分),并且也被所有其他 SQL 数据库实现。

Microsoft 的 CLI 实现称为“ODBC”(并具有扩展名)。正如您的问题所示,没有人知道首字母缩写词“CLI”,因此其他操作系统上的实现也称自己为“ODBC”(例如)。在 Windows 之外,它们并不是很普遍。


推荐阅读