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

标签 mysql c database sqlite libpq

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

在 C 中它是什么样的?

对于不同的 RDBMS,C 语言中是否有统一的 API?

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

谢谢。

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

最佳答案

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

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

关于mysql - C 中是否有针对不同 RDBMS 的统一 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52096454/

相关文章:

php - 24 小时后过期的 SQL 条目

MYSQL匹配csv关键字列

php - 简单的 mysql 事件未运行

c - 如何使用 C 将 SHA1 输出存储到文件

c++ - 如何将 Mercurial 标签嵌入到我的 C/C++ 代码中?

mysql - 从大表中查询小选择的最快方法?

php - Codeigniter 3 中的用户名或密码无效

c - kill() 在 C 中的用法混淆

database - CakePHP:使用 save() 添加/减去?

php - laravel 无法连接到 VM LAMP 上的 mysql 数据库