国際展開リソース- Interactive SQL(DBISQL)言語設定の問題 (SQL Anywhere 6, 7)

ここでは、SQL Anywhere Studio version 6.0.x と 7.0.0 で DBISQL を使用した場合に発生する既知の問題について説明します。

この問題は、古い DBISQL (6.0.x における dbisql.exe、7.0.x における dbisqlc.exe) で発生します。
7.0.1 以降では、この問題は発生しません。それより古いバージョンでは、この問題は修正されません。

問題の説明:

英語版のソフトウェアを英語以外のシステムにインストールして、国際展開リソースを使用すると (データベース・サーバと DBISQL が英語以外の言語で実行されていると)、データベース・サーバから届くメッセージの文字が DBISQL によって破壊されます。この問題は、cp1252 (英語と西ヨーロッパ言語) と cp932 (日本語) をどちらも使用していないシステムで発生します。この問題は、ポーランド語、中国語、韓国語のシステムで確認されています。

問題の原因:

データベース・サーバの文字セットが、データベース照合の文字セットと一致していません。
一般に、この問題は、asademo.db が照合 1252LATIN1 を使用するために発生します。この 1252LATIN1は、cp1252 に基づいています。
cp1252 を使用しないシステムでは、サーバがエラー・メッセージを自身の文字セットから cp1252 に変換しようとします。
cp1252 に含まれていない文字は、すべて壊れます。

問題の回避方法:

デフォルトの照合設定を使用してデータベースを構築します。この設定では、使用する言語に適した文字セットを持つ照合が選択されます。
使用される照合をチェックしてください。間違った照合が選択されている場合は、正しい照合を指定してデータベースを構築します。
asademo データベースの再構築が必要な場合は、dbunload を使用してデータベースを再構築する必要があります。詳細については、『ASA プログラム・インターフェイス』「第3章データベース・ツール・インターフェイス」のDBTools 関数、DBUnload 関数を参照してください。
asademo のデータはすべて英語の 7 ビット ASCII 文字のため、再構築中には文字変換に関する問題が発生しないことに注意してください。

インストールされた日本語版ソフトウェアでこの問題が発生しない理由:

6.0.xJ の日本語版インストールでは、asademoj.db がインストールされます。これは、cp932 に基づいている SJIS2 照合を使用して構築されます。そのため、変換が正常に実行されます。

7.0.1 以降でこの問題が発生しない理由:

7.0.1 国際リリースからは、ASA のインストール時にデータベースが構築されるため、ホスト・オペレーティング・システムの言語に適した照合をデータベースが選択できます。国際展開リソースを使用すると、サーバの文字セットからデータベースの文字セットに正常に変換されます。

この問題を修正していない理由:

この問題の解決法は、インストールを再構築して、インストール時にデータベースを作成することです。