我喜欢JDBC for Java和DB-API for Python的想法,它们都提供了统一的API来访问不同的关系数据库管理系统。
在C中它是什么样的?
C中是否有针对不同RDBMS的统一API?
我还没找到,或者我可能会错过它。这样的努力是否成功? POSIX似乎没有定义访问RDBMS的统一API。
谢谢。
注意:我试图在C中读取关于postgresql的libpq,但感觉postgresql特定的API比JDBC和DB-API复杂。我还没有检查过特定于sqlite或特定于mysql的API,但是期望它们与libpq的类似。
1989年,Oracle,Informix,Ingres,DEC,Tandem,Sun和HP组建了SQL Access Group并定义了Call Level Interface以允许C(和COBOL)程序访问SQL数据库。如今,这个接口规范不是由POSIX管理,而是由ISO / IEC(因此是官方SQL标准的一部分)管理,并且也由所有其他SQL数据库实现。
Microsoft的CLI实现称为“ODBC”(并且具有extensions)。正如您的问题所示,没有人知道首字母缩略词“CLI”,因此其他操作系统上的实现也称自己为“ODBC”(例如,unixodbc,iodbc)。在Windows之外,它们并不是很普遍。