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

发布于 2024-12-06 13:42:11 字数 277 浏览 0 评论 0原文

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

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

There are two major Open Source platform independent implementation of the ODBC. It is iODBC and unixODBC.

Considering Unix as ODBC user platform and feature-wise, what are the real practical differences between these two implementations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

顾铮苏瑾 2024-12-13 13:42:11

只是为了让您知道我使用 unixODBC 并为它做出了贡献,但我不使用 iODBC。

Unicode 支持

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

游标库

unixODBC 有一个,我不“认为”iODBC 有。

应用程序支持

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

操作系统支持

iODBC 一直是 Mac 上使用最多的,因为 Apple 将其包含在内(尽管我相信它已从 Lion 中删除)。两者都可以从源代码构建,并且大多数 Linux 发行版都将两者打包(尽管 Novell/Suse 不这样做,因为它只分发 unixODBC)。

线程安全

unixODBC 是线程安全的,并且包含用于保护不同级别句柄的标志。 iODBC 过去并非如此(但现在可能已经改变)。

支持

两者都有支持论坛(unixODBC 有 3 个),尽管我想说 unixODBC 的论坛要活跃得多(我两个都支持)。

unixODBC的授权

是GPL 和LGPL。
iODBC 是 LGPL/BSD

在实践中没有太大区别,但我想你会发现 unixODBC 使用更广泛。

Just so you know I use and have contributed to unixODBC and I don't use iODBC.

Unicode support

unixODBC follows MS ODBC Driver manager and has SQLWCHARs as 2 bytes UCS2 encoded.
iODBC I believe uses wchar_t (this is based on attempting to support iODBC in DBD::ODBC)

cursor library

unixODBC has one, I don't "think" iODBC has.

application support

A lot of ODBC applications support unixODBC e.g., OpenOffice and ODBC drivers from Oracle, IBM and SAP. I'm not sure about iODBC.

OS support

iODBC has always been the most used on on Macs since Apple included it (although I believe it is removed from Lion). Both can be built from source and most Linux distributions package both (although not Novell/Suse which only distributes unixODBC).

thread safety

unixODBC is thread safe and includes flags to protect handles at different levels. This did not used to be the case with iODBC (but that might have changed now).

support

Both have support forums (unixODBC has 3) although I'd say the unixODBC ones are far more active (I'm on both).

Licensing

unixODBC is GPL and LGPL.
iODBC is LGPL/BSD

In practice there is not a lot of difference but I think you'll find unixODBC is more widely used.

夏尔 2024-12-13 13:42:11

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

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

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

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

功能iODBCUnixODBC
Unicode 支持
    UCS-2
是  UCS-4(a/k/a UTF-32)
​  UTF-08(又名 UTF-8)
​  UTF-16
是  UTF-32 (a/k/a UCS-4)
支持
使用其他 SDK 开发的驱动程序和应用
    支持使用 iODBC SDK 开发的驱动程序是 否&
nbsp;   支持使用 iODBC SDK 开发的应用程序是 否&
nbsp;   支持使用 unixODBC SDK 开发的驱动程序
    支持使用 unixODBC SDK 开发的应用程序
    支持使用 DataDirect SDK 开发的驱动程序是 否&
nbsp;   支持使用 DataDirect SDK 开发的应用
操作系统默认 DM
    macOS
  Linux部分部分
    类 Unix部分部分
操作系统支持
    macOS部分
  Linux是是
    类似 UnixYESYES
用户友好的本机 GUI 管理员
    macOSQt
基于   Linux基于 GTK 和基于 HTMLQt
基于   类 Unix基于 GTK 和基于 HTML 基于Qt
线程安全YESYES
支持< /em>
    邮件列表
    论坛
    Github 存储库是是
    SourceForge 存储库是 是
开源许可
    GPL没有程序
    LGPL
  BSD

备注

Unicode a/k /a 宽字符

  • iODBC 支持并在所有 UCS-2、UCS-4、UTF-8、UTF-16、UTF-32 之间进行转换
  • unixODBC 遵循 MDAC,并且 SQLWCHAR 为 2 个字节UCS2 编码的

SDK 锁定

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

I finally found some time for a more complete answer... (attn @mloskot -- you can change your accepted answer, if you agree that this one is more accurate and/or complete than the other)

iODBC and unixOBDC are basically API equivalent, both being cross-platform implementations of Microsoft's ODBC standard. iODBC's flexible Unicode support includes UCS-2, UTF-8, UCS-4. iODBC libraries are bundled into macOS Panther (10.3.0) through Big Sur (11.2.x), and may be built and/or installed on AIX, Solaris, HP-UX, any Linux distribution, *BSD, other Unix-like OS, and more. iODBC has been thread safe for a very long time, and is actively maintained and supported by OpenLink Software (my employer).

The table below covers the most common comparative questions (is there something I should add?), and is based on iODBC 3.52.14, as of February 2021 (reports version 03.52.1421.0217), and unixODBC 2.3.9, as of September 2020.

For a somewhat more detailed comparison, and a much more fancy and detailed table, see this spreadsheet

featureiODBCUnixODBC
Unicode support
    UCS-2YESYES
    UCS-4 (a/k/a UTF-32)YESNO
    UTF-08 (a/k/a UTF-8)YESNO
    UTF-16YESYES
    UTF-32 (a/k/a UCS-4)YESNO
Supports drivers and apps
developed using other SDKs
    Supports drivers developed using iODBC SDKYESNO
    Supports apps developed using iODBC SDKYESNO
    Supports drivers developed using unixODBC SDKYESYES
    Supports apps developed using unixODBC SDKYESYES
    Supports drivers developed using DataDirect SDKYESNO
    Supports apps developed using DataDirect SDKYESNO
OS default DM
    macOSYESNO
    Linuxpartialpartial
    Unix-likepartialpartial
OS support
    macOSYESpartial
    LinuxYESYES
    Unix-likeYESYES
User-friendly native GUI Administrator
    macOSYESQt-based
    LinuxGTK-based and HTML-basedQt-based
    Unix-likeGTK-based and HTML-basedQt-based
Thread SafeYESYES
Support
    Mailing List(s)YESYES
    Forum(s)YESYES
    Github repositoryYESYES
    SourceForge repositoryYESYES
Open Source Licensing
    GPLNOprograms
    LGPLYESlibraries
    BSDYESNO

Notes

Unicode a/k/a Wide Characters

  • iODBC supports and translates between all of UCS-2, UCS-4, UTF-8, UTF-16, UTF-32
  • unixODBC follows MDAC, and SQLWCHARs are 2 bytes UCS2 encoded

SDK lock-in

  • iODBC supports applications and drivers developed using unixODBC SDK and DataDirect SDK as well as those developed using iODBC SDK
  • unixODBC only supports applications and drivers developed using unixODBC SDK
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文