Каковы функциональные различия между iODBC и unixODBC?

Существуют две основные платформы Open Source независимой реализации ODBC. Это iODBC и unixODBC.

Рассматривая Unix как пользовательскую платформу ODBC с точки зрения функциональности, каковы реальные практические различия между этими двумя реализациями?

2 ответа

Решение

Просто чтобы вы знали, что я использую и внес вклад в unixODBC, а я не использую iODBC.

Поддержка юникода

unixODBC следует диспетчеру драйверов MS ODBC и имеет SQLWCHAR в виде 2-байтовых кодированных UCS2. Я полагаю, что iODBC использует wchar_t (это основано на попытке поддержки iODBC в DBD::ODBC)

библиотека курсоров

У unixODBC есть один, я не "думаю", что есть у iODBC.

поддержка приложения

Многие приложения ODBC поддерживают unixODBC, например, драйверы OpenOffice и ODBC от Oracle, IBM и SAP. Я не уверен насчет iODBC.

Поддержка ОС

iODBC всегда использовался на Mac с тех пор, как Apple включила его (хотя я считаю, что он удален из Lion). Оба могут быть собраны из исходного кода и большинства пакетов дистрибутивов Linux (хотя не Novell/Suse, которая распространяет только unixODBC).

безопасность потока

unixODBC является поточно-ориентированным и включает флаги для защиты дескрипторов на разных уровнях. Раньше такого не было с iODBC (но сейчас это могло измениться).

служба поддержки

У обоих есть форумы поддержки (у unixODBC их 3), хотя я бы сказал, что форумы unixODBC гораздо более активны (я на обоих).

лицензирование

unixODBC - это GPL и LGPL. iODBC - это LGPL/BSD

На практике нет большой разницы, но я думаю, вы найдете, что unixODBC более широко используется.

Я наконец нашел время ...

Для более подробного сравнения и более интересной и подробной таблицы см. Эту таблицу.

Эта таблица основана на iODBC 3.52.14 по состоянию на февраль 2021 г. и unixODBC 2.3.9 по состоянию на сентябрь 2020 г.

Примечания

Расширенные символы Unicode a / k / a

  • iODBC поддерживает и выполняет перевод между всеми UCS-2, UCS-4, UTF-8, UTF-16, UTF-32
  • unixODBC следует за MDAC, и SQLWCHARs - 2 байта в кодировке UCS2

Блокировка SDK

  • iODBC поддерживает приложения и драйверы, разработанные с использованием unixODBC SDK и DataDirect SDK, а также разработанные с использованием iODBC SDK
  • unixODBC поддерживает только приложения и драйверы, разработанные с использованием unixODBC SDK
Другие вопросы по тегам