iODBC和unixODBC之间有什么功能差异?

mlo*_*kot 30 unix odbc unixodbc iodbc

有两个主要的开源平台独立实现ODBC.它是iODBCunixODBC.

考虑到Unix作为ODBC用户平台和功能方面,这两种实现之间真正的实际区别是什么?

boh*_*ica 36

只是因为你知道我使用并为unixODBC做出了贡献而且我没有使用iODBC.

Unicode支持

unixODBC遵循MS ODBC驱动程序管理器,并将SQLWCHAR作为2字节UCS2编码.iODBC我相信使用wchar_t(这是基于尝试在DBD :: ODBC中支持iODBC)

光标库

unixODBC有一个,我不"想"iODBC有.

应用支持

许多ODBC应用程序支持unixODBC,例如Oracle,IBM和SAP的OpenOffice和ODBC驱动程序.我不确定iODBC.

OS支持

自苹果公司收录以来,iODBC一直是Mac上最常用的(虽然我相信它已从Lion中删除).两者都可以从源代码构建,大多数Linux发行版都可以打包(尽管不是Novell/Suse,它只分发unixODBC).

线程安全

unixODBC是线程安全的,包括用于保护不同级别句柄的标志.这曾经不是iODBC的情况(但现在可能已经改变了).

支持

两者都有支持论坛(unixODBC有3个),虽然我会说unixODBC的更加活跃(我两个都是).

许可

unixODBC是GPL和LGPL.iODBC是LGPL/BSD

在实践中没有太大的区别,但我认为你会发现unixODBC被更广泛地使用.

  • [iODBC](http://iodbc.org/)和unixOBDC基本上是API等价的,都是微软ODBC标准的跨平台实现.iODBC灵活的Unicode支持包括UCS-2,UTF-8,UCS-4.iODBC通过El Capitan(10.2 - 10.11)捆绑到OS X,Jaguar中,可以安装在AIX,Solaris,HP-UX,大多数Linux,*BSD等上.iODBC在很长一段时间内都是线程安全的,并且[OpenLink Software](http://www.openlinksw.com/)(我的雇主)积极维护和支持. (7认同)
  • @bohica - 问题是关于这两个项目之间的差异.你的回答首先说你基本上对iODBC一无所知,但是已经为unixODBC做出了贡献,然后你继续说了几件关于iODBC不真实的事情.我本可以写一个全新的答案,或者我选择的,留下我的意见,以便纳入和纠正你的答案.我认为你更愿意让你的答案在两个方面保持局部; 我会尽力找时间写一个更完整的替代答案. (6认同)
  • 优秀的braindump.我格式化了一点+1 (3认同)
  • @bohica感谢您的详细信息+1尚未标记为已回答,等待更多可能的答案. (2认同)
  • @bohica我已将你的回答标记为答案.再次感谢 (2认同)
  • @TallTed,您的评论是对 iODBC 和 Openlink 软件的公然宣传,尤其是因为 a) 它对答案没有任何添加 b) 它链接到 iODBC 而不是 unixODBC c) 它链接到 Openlink 软件。由于您从未提及 unixODBC,您的评论与实际差异有何关联。我想作为 openlink 的“技术传播者”这是可以预料的,即,您是来帮助某人还是推广 Openlink。诚然,我 2011 年的回答现在已经过时,但我质疑您发表评论的动机。 (2认同)

Tal*_*Ted 6

我终于找到了一些时间来获得更完整的答案...(attn @mloskot - 如果您同意这个答案比另一个更准确和/或更完整,您可以更改您接受的答案)

\n

iODBCunixOBDC基本上是等价的 API,都是 Microsoft ODBC 标准的跨平台实现。iODBC 灵活的 Unicode 支持包括 UCS-2、UTF-8、UCS-4。iODBC 库通过 Big Sur ( 11.2.x )捆绑到 macOS Panther ( 10.3.0 ),并且可以在 AIX、Solaris、HP-UX、任何 Linux 发行版、*BSD、其他类 Unix 操作系统上构建和/或安装, 和更多。iODBC 长期以来一直是线程安全的,并且由OpenLink Software(我的雇主)积极维护和支持。

\n

下表涵盖了最常见的比较问题(有什么我应该添加的吗?),并且基于截至 2021 年 2 月的 iODBC 3.52.14(报告版本03.52.1421.0217)和截至 2020 年 9 月的 unixODBC 2.3.9。

\n

有关更详细的比较以及更精美和详细的表格,请参阅此电子表格

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n
特征ODBCUnixODBC
统一码支持
\xc2\xa0 \xc2\xa0 UCS-2是的是的
\xc2\xa0 \xc2\xa0 UCS-4(又称 UTF-32)是的
\xc2\xa0 \xc2\xa0 UTF-08(又名 UTF-8)是的
\xc2\xa0 \xc2\xa0 UTF-16是的是的
\xc2\xa0 \xc2\xa0 UTF-32(又称 UCS-4)是的

支持使用其他 SDK 开发的驱动程序和应用程序
\xc2\xa0 \xc2\xa0支持使用 iODBC SDK 开发的驱动程序是的
\xc2\xa0 \xc2\xa0支持使用 iODBC SDK 开发的应用程序是的
\xc2\xa0 \xc2\xa0支持使用 unixODBC SDK 开发的驱动程序是的是的
\xc2\xa0 \xc2\xa0支持使用 unixODBC SDK 开发的应用程序是的是的
\xc2\xa0 \xc2\xa0支持使用 DataDirect SDK 开发的驱动程序是的
\xc2\xa0 \xc2\xa0支持使用 DataDirect SDK 开发的应用程序是的
操作系统默认DM
\xc2\xa0 \xc2\xa0 macOS是的
\xc2\xa0 \xc2\xa0 Linux部分的部分的
\xc2\xa0 \xc2\xa0类 Unix部分的部分的
操作系统支持
\xc2\xa0 \xc2\xa0 macOS是的部分的
\xc2\xa0 \xc2\xa0 Linux是的是的
\xc2\xa0 \xc2\xa0类 Unix是的是的
用户友好的本机 GUI 管理员
\xc2\xa0 \xc2\xa0 macOS是的基于Qt
\xc2\xa0 \xc2\xa0 Linux基于GTK和基于HTML基于Qt
\xc2\xa0 \xc2\xa0类 Unix基于GTK和基于HTML基于Qt
线程安全是的是的
支持
\xc2\xa0 \xc2\xa0邮件列表是的是的
\xc2\xa0 \xc2\xa0论坛是的是的
\xc2\xa0 \xc2\xa0 Github 存储库是的是的
\xc2\xa0 \xc2\xa0 SourceForge 存储库是的是的
开源许可
\xc2\xa0 \xc2\xa0 GPL程式
\xc2\xa0 \xc2\xa0 LGPL是的图书馆
\xc2\xa0 \xc2\xa0 BSD是的
\n

笔记

\n

Unicode a/k/a 宽字符

\n
    \n
  • iODBC 支持所有 UCS-2、UCS-4、UTF-8、UTF-16、UTF-32 之间的转换
  • \n
  • unixODBC遵循MDAC,SQLWCHARs为2字节UCS2编码
  • \n
\n

SDK锁定

\n
    \n
  • iODBC 支持使用 unixODBC SDK 和 DataDirect SDK 开发的应用程序和驱动程序以及使用 iODBC SDK 开发的应用程序和驱动程序
  • \n
  • unixODBC 仅支持使用 unixODBC SDK 开发的应用程序和驱动程序
  • \n
\n