【问题标题】:Is there uniform API in C for different RDBMS'?C 中是否有针对不同 RDBMS 的统一 API?
【发布时间】:2018-08-30 11:55:27
【问题描述】:

我喜欢 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 不同。

【问题讨论】:

  • ODBC?这不是 JDBC 得名的地方吗?
  • 谢谢。鉴于 ODBS 是由 Microsoft 创建的,与在 Linux 中直接使用特定于 RDMBS 的驱动程序相比,您是否碰巧知道 ODBC 在 Linux 下对于 postgresql、sqlite 和 mysql 是否流行?如果没有,什么更受欢迎?
  • 有 libdbi 但它看起来已经死了,因为多年来没有更新并且几乎没有任何提交。我想你会发现在 Linux/Unix 上的 C 语言中,人们只是将本机 API 用于他们正在使用的任何数据库。 ODBC 可能会在 Windows 世界中得到更多使用?

标签: mysql c database sqlite libpq


【解决方案1】:

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

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

【讨论】:

  • 谢谢。 Linux 中没有什么流行的东西?我问了这个问题,因为我想学习在 C 中使用 RDBMS 编程(主要是在 Linux 中),但不想迷失在不同 API 的 DBMS 特定部分中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 2011-06-03
  • 2021-01-19
  • 1970-01-01
  • 1970-01-01
  • 2016-07-07
  • 2018-01-16
相关资源
最近更新 更多