vb.net – 与Advantage ADT文件连接的排序错误5175

我正在用VB.NET开发一个应用程序,它必须连接到表Advantage(ADT)

我使用以下连接字符串:

DSN=kantechX;DataDirectory=C:\DB\Data;SERVER=NotTheServer;
Compression=Never;DefaultType=Advantage;Rows=False;
collation=SPANISH_VFP_CI_AS_1252;AdvantageLocking=ON;Locking=Record;
MemoBlockSize=64;MaxTableCloseCache=5;ServerTypes=1;
TrimTrailingSpaces=False;EncryptionType=RC4;FIPS=False

建立连接时会生成以下错误:

Error 7200: AQE Error: State = HY000; NativeError = 5175 [iAnywhere Solutions] [SQL Advantage] [ASA] Error 5175: The index file was created with a different collation sequence than is Currently Being used. Table name: Card

我们还尝试使用Advantage Data Architect 1110进行连接,当表打开时,它会显示以下错误:

Error 7200: AQE Error: State = HY000; NativeError = 5209 [iAnywhere Solutions] [SQL Advantage] [ASA] Error 5209: Different collations are used, Which can result in poor query optimization. Table collation: (none), collation index: SPANISH_VFP_CI_AS_1252 Table name: Card

架构师要求重新索引表,当我们这样做时,它不会显示警报2,但是当我们尝试从vb.net连接ODBC时,异常会保留第一条错误消息.

我检查了adslocal.cfg文件,但我没有找到任何有用的东西

我怎么解决这个问题?

最佳答案 我终于可以解决这个问题了,感谢Jens链接以及我在google上找到的其他信息.

步骤如下:

>备份文件(以防万一)
>将Advantage Architect安装在要连接的ADT表的机器中.
>下载并安装.NET数据提供程序(保留语言[Current Languaje]和编码[USA]的默认设置)我们有.NET解决方案
>下载并安装Advantage ODBC Driver(保留语言[Current Languaje]和编码[USA]的默认设置)在我们有.NET解决方案的机器上.

 4.1尝试安装32位版本或64位,虽然我的系统是64位我不得不安装32位使其工作
> Open Architect并创建与现有表的新连接(ADT文件)
>在建筑师中双击打开表格
6.1出现一个警告,表明该表是用不同的语言编码的,如果你想更改连接参数(永久,只有这一次或忽略),我们说我们要永久改变(如果没有永久选择,我们可以不执行以下步骤)
6.2这里发生了两件事之一:
– 它显示一个警告,指示表的索引是另一个整理和推荐的reindex(这正是需要做的事情)
– 表示该表正在使用中且无法打开,在这种情况下,您必须将文件分开并重复步骤5和6,然后覆盖被阻止的文件.
>仅为了安全起见,我们将执行一个允许多个排序规则的命令EXECUTE PROCEDURE sp_AllowMultipleCollat​​ions(”,true),第一个参数为空,”表示适用于所有编码而不是特别是’Spanish_vfp_ci_as_1252′,第二个参数,true,表示免费限制.
7.1运行此命令查找在Architect的菜单中使用SQL运行或创建手动查询的选项
>打开我们有解决方案的机器的Windows ODBC连接,使用ODBC Stream Advantage concction ADT表创建新连接,默认语言为ANSI,更改评级警报步骤6.1,指定本地服务器的配置.
>在.NET中,我们使用连接字符串创建一个新的ODBC conecction,指定在Windows中使用创建的ODBC的位置以及步骤6.1的语言

DSN = [在Windows中创建的ODBC]; DataDirectory = [ADT文件的路径]; SERVER = NotTheServer;压缩=;
DefaultType = Advantage;行=假;语言= SPANISH_VFP_CI_AS_1252;
AdvantageLocking = ON;锁定=记录; MemoBlockSize = 64; MaxTableCloseCache = 5; ServerTypes = 1;
TrimTrailingSpaces = False; EncryptionType = RC4; DDPassword = kantech;
FIPS =假; TLSCiphers = AES128-SHA:AES256-SHA:RC4-MD5

  9.1 if when You run the application doesnt allow use odbc for any reason maybe you you must add the advantage DLL in the solution references (Right click in the solution folder > add references > search in the COM for Advantage) .
点赞