ODBCの 2 つの主要なオープン ソース プラットフォームに依存しない実装があります。iODBCとunixODBCです。
Unix を ODBC ユーザー プラットフォームおよび機能として考えると、これら 2 つの実装の実際の実際の違いは何ですか?
私が unixODBC を使用しており、これに貢献しており、iODBC は使用していません。
unixODBC は MS ODBC ドライバー マネージャーに従い、2 バイトの UCS2 でエンコードされた SQLWCHAR を持ちます。iODBC wchar_t を使用していると思われます (これは、DBD::ODBC で iODBC をサポートしようとしたことに基づいています)
unixODBC には 1 つあり、iODBC にはあるとは「思いません」。
Oracle、IBM、SAP の OpenOffice や ODBC ドライバなど、多くの ODBC アプリケーションが unixODBC をサポートしています。iODBCについてはよくわかりません。
iODBC は、Apple に組み込まれて以来、常に Mac で最も使用されてきました (ただし、Lion からは削除されたと思います)。どちらもソースとほとんどの Linux ディストリビューション パッケージからビルドできます (ただし、unixODBC のみを配布する Novell/Suse ではありません)。
unixODBC はスレッド セーフであり、さまざまなレベルでハンドルを保護するためのフラグが含まれています。これは iODBC の場合には当てはまりませんでした (ただし、現在は変更されている可能性があります)。
どちらにもサポート フォーラムがあります (unixODBC には 3 つあります) が、unixODBC の方がはるかに活発です (私は両方に参加しています)。
unixODBC は GPL および LGPL です。iODBC は LGPL/BSD です
実際には大きな違いはありませんが、unixODBC の方が広く使用されていることがわかると思います。