1

我正在将 D7 应用程序转换为 D2009,并且遇到了 Advantage 数据库服务器(本地)的问题。每当我在查询中包含非参数化土耳其语字符时,我都会收到错误消息

[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,比如 in;

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

但无济于事。我还将 AdsConnection 的 AdsCollat​​ion 值设置为 ANSI、OEM、TURKISH-1254,但结果是一样的。有任何想法吗?

4

1 回答 1

2

你能看一下 adslocal32.dll 同目录下的 adscollat​​e.adt 吗?

根据帮助文件,问题的一个可能原因是服务器加载了旧版本的 adscollat​​e.adt。adscollat​​e.adt 的 10.0 版本有一些额外的列,其中之一是“UnicodeLocale”。

adslocal.cfg 中的 ANSI/OEM 设置是什么?

如果你运行这个“SELECT ::stmt.collat​​ion FROM system.iota”,结果是什么?

于 2012-04-09T23:17:08.237 回答