Существует ли единый API в C для разных RDBMS?
Мне нравится идея JDBC для Java и DB-API для Python, которые предоставляют унифицированные API для доступа к различным системам управления реляционными базами данных.
Каково это в C?
Существует ли единый API в C для разных RDBMS?
Я не нашел один, или я мог бы пропустить это. Является ли такое усилие успешным? POSIX, похоже, не определяет единый API для доступа к СУБД ".
Благодарю.
Примечание: я пытался прочитать о libpq в C для postgresql, но чувствовал, что специфичный для postgresql API был сложным по сравнению с JDBC и DB-API. Я еще не проверил API, специфичный для sqlite или mysql, но ожидаю, что он не похож на тот, что был в libpq.
1 ответ
В 1989 году Oracle, Informix, Ingres, DEC, Tandem, Sun и HP создали группу доступа SQL и определили интерфейс уровня вызова, чтобы программы C (и COBOL) имели доступ к базам данных SQL. В настоящее время эта спецификация интерфейса управляется не POSIX, а ISO/IEC (и, следовательно, частью официального стандарта SQL), а также была реализована всеми другими базами данных SQL.
Реализация CLI от Microsoft известна как "ODBC" (и имеет расширения). И как показывает ваш вопрос, никто не знает аббревиатуру "CLI", поэтому реализации в других ОС также называют себя "ODBC" (например, unixodbc, iodbc). За пределами Windows они не очень распространены.