Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー プログラミング » ODBC サポート » ODBC アプリケーションの構築

 

UNIX 用 UTF-32ODBC ドライバーマネージャー

ワイド呼び出しをサポートする SQL Anywhere ODBC ドライバーは 16 ビットの SQLWCHAR 用に構築されているため、SQLWCHAR を 32 ビット (UTF-32) の数量として定義する ODBC ドライバーマネージャーのバージョンは、SQL Anywhere ODBC ドライバーで使用できません。このような場合に備えて ANSI 専用バージョンの SQL Anywhere ODBC ドライバーが用意されています。このバージョンの ODBC ドライバーでは、ワイド呼び出しインターフェイス (SQLConnectW など) はサポートされていません。

ドライバーの共有オブジェクト名は libdbodbcansi12_r です。ドライバーのスレッド変形のみが提供されています。Mac OS X では、dylib に加え、バンドル形式 (dbodbcansi12_r.bundle) のドライバーも使用できます。Real Basic などの特定のフレームワークは dylib で動作しないため、バンドルが必要になります。

通常の ODBC ドライバーでは、SQLWCHAR 文字列が UTF-16 文字列として処理されます。このドライバーは、iODBC などの、SQLWCHAR 文字列を UTF-32 文字列として処理する一部の ODBC ドライバーマネージャーでは使用できません。Unicode 対応のドライバーを扱う場合、これらのドライバーマネージャーでは、アプリケーションからのナロー呼び出しがドライバーへのワイド呼び出しに変換されます。ANSI 専用ドライバーではこの動作が回避されます。このため、アプリケーションがワイド呼び出しを行わないかぎり、ANSI 専用ドライバーをこのようなドライバーマネージャーで使用することができます。iODBC を介したワイド呼び出しや、同様のセマンティックを持つ他のドライバーマネージャーは、引き続きサポートされません。