2012-04-07 8 views
1

D7アプリケーションをD2009に変換していますが、Advantageデータベースサーバー(ローカル)に問題がありました。クエリにパラメータ化されていないトルコ文字を含めると、エラーが発生します。Advantage Database Server 10エラー5211 - Unicode文字列を変換する際にエラーが発生しました

[iAnywhere Solutions][Advantage SQL][ASA] 
Error 5211: There is an error converting Unicode string to or from code page string. 
Some Unicode characters cannot be converted to code page characters. 

私はこのコマンドでansistringsを使用しようとしました。

AdsQuery1.SQL.Text:=AnsiString('SELECT something FROM sometable WHERE somefield=''somelocalçharaçterş'' '); 

しかし、役に立たない。また、AdsConnectionのAdsCollat​​ion値をANSI、OEM、TURKISH-1254に設定しましたが、結果は同じでした。何か案は?

+3

問題は、パラメータ化されていないクエリ*を使用した場合にのみ発生するので、解決策がかなり明らかになると思われます。*パラメータ化*クエリを使用します。いいえ? :) –

+0

本当ですが、それは非常に時間がかかるでしょう。私はAdsConnectionの一部または何らかの並べ替えのいくつかの種類の調整を探していた... – AgentAdams

答えて

2

adslocal32.dllと同じディレクトリにあるadscollat​​e.adtをご覧になれますか?

ヘルプファイルによると、古いバージョンのadscollat​​e.adtがサーバーによってロードされている可能性があります。 adscollat​​e.adtの10.0バージョンにはいくつかの追加の列があり、そのうちの1つは「UnicodeLocale」です。

adslocal.cfgのANSI/OEM設定は何ですか?

"SELECT :: stmt.collat​​ion FROM system.iota"を実行すると、結果はどうなりますか?

関連する問題