有两个主要的开源平台独立的ODBC实现。它是iODBC和unixODBC。
考虑到 Unix 作为 ODBC 用户平台和功能,这两种实现之间真正的实际区别是什么?
只是为了让您知道我使用并为 unixODBC 做出了贡献,而我不使用 iODBC。
unixODBC 遵循 MS ODBC 驱动程序管理器,并将 SQLWCHARs 作为 2 字节 UCS2 编码。iODBC 我相信使用 wchar_t(这是基于尝试在 DBD::ODBC 中支持 iODBC)
unixODBC 有一个,我不“认为” iODBC 有。
许多 ODBC 应用程序支持 unixODBC,例如来自 Oracle、IBM 和 SAP 的 OpenOffice 和 ODBC 驱动程序。我不确定 iODBC。
自从 Apple 包含 iODBC 以来,iODBC 一直是 Mac 上使用最多的(尽管我相信它已从 Lion 中删除)。两者都可以从源代码构建,并且大多数 Linux 发行版都将两者都打包(尽管不是 Novell/Suse,它只分发 unixODBC)。
unixODBC 是线程安全的,并包含用于保护不同级别的句柄的标志。iODBC 过去并非如此(但现在可能已经改变)。
两者都有支持论坛(unixODBC 有 3 个),尽管我会说 unixODBC 的更活跃(我都在)。
unixODBC 是 GPL 和 LGPL。iODBC 是 LGPL/BSD
在实践中并没有太大的区别,但我认为您会发现 unixODBC 的使用更为广泛。
我终于找到了一些时间来获得更完整的答案......(attn @mloskot - 如果您同意这个答案比另一个更准确和/或更完整,您可以更改您接受的答案)
iODBC和unixOBDC基本上是 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(我的雇主)积极维护和支持。
下表涵盖了最常见的比较问题(有什么我应该补充的吗?),并且基于截至 2021 年 2 月的 iODBC 3.52.14(报告版本03.52.1421.0217
)和截至 2020 年 9 月的 unixODBC 2.3.9。
如需更详细的比较,以及更精美、更详细的表格,请参阅此电子表格
特征 | iODBC | UnixODBC |
---|---|---|
Unicode 支持 | ||
UCS-2 | 是的 | 是的 |
UCS-4(a/k/a UTF-32) | 是的 | 不 |
UTF-08 (a/k/a UTF-8) | 是的 | 不 |
UTF-16 | 是的 | 是的 |
UTF-32(a/k/a UCS-4) | 是的 | 不 |
支持 使用其他 SDK 开发的驱动程序和应用程序 |
||
支持使用 iODBC SDK 开发的驱动程序 | 是的 | 不 |
支持使用 iODBC SDK 开发的应用程序 | 是的 | 不 |
支持使用 unixODBC SDK 开发的驱动程序 | 是的 | 是的 |
支持使用 unixODBC SDK 开发的应用程序 | 是的 | 是的 |
支持使用 DataDirect SDK 开发的驱动程序 | 是的 | 不 |
支持使用 DataDirect SDK 开发的应用程序 | 是的 | 不 |
操作系统默认 DM | ||
苹果系统 | 是的 | 不 |
Linux | 部分的 | 部分的 |
类 Unix | 部分的 | 部分的 |
操作系统支持 | ||
苹果系统 | 是的 | 部分的 |
Linux | 是的 | 是的 |
类 Unix | 是的 | 是的 |
用户友好的本机 GUI 管理员 | ||
苹果系统 | 是的 | 基于 Qt |
Linux | 基于 GTK 和基于 HTML | 基于 Qt |
类 Unix | 基于 GTK 和基于 HTML | 基于 Qt |
线程安全 | 是的 | 是的 |
支持 | ||
邮件列表) | 是的 | 是的 |
论坛 | 是的 | 是的 |
Github 仓库 | 是的 | 是的 |
SourceForge 存储库 | 是的 | 是的 |
开源许可 | ||
GPL | 不 | 程式 |
LGPL | 是的 | 图书馆 |
BSD | 是的 | 不 |
SQLWCHAR
s 为 2 字节 UCS2 编码