1 打开SQL Advantage报错:Internal failure while initializing SQL Advantage 1.Internal failure while initializing SQL Advantage. 2.Please check that Open Client is configured correctly. 正如下图所示,奇怪的是如果这时候重启电脑的话,那么打开SQL Advantage就正常。 2 查看报错信息:sybinit.err文件 The context allocation routine failed when it tried to load localization files!! 。按照文件中的提示,检查了SYBASE的环境变量值确实是D:\sybase,同时在D:\sybase\locales\locales.dat文件中LANG的值也为zh_CN。 3 猜想:OC客户端产生系统临时文件 4 系统环境变量:windows中“/”和“\” 5 延伸:其它不当配置也会报同样的错误 1 打开SQL Advantage报错:Internal failure while initializing SQL Advantage 2.1 提问1:SQL Advantage 12.5.1 and OC 12 1.The context allocation routine failed. 2.The following problem caused the failure: 3.Invalid context version. 根据建议:建立一个.bat批处理文件(博主的示例) 1.set SYBASE=D:\Sybase2.set SYBASE_OCS=OCS-12_53.D:\Sybase\sqladv-12_5\sqladv.exe这样设置好OC客户端的环境变量后,发现拷贝过来的sybase客户端还需要添加charsets、ini、locales文件夹。于是添加这些文件夹,最后测试成功。 2.2 提问2:Sybase Central 4.3 and SQL Advantage 12.5 根据建议:通过调整在dos窗口中输入set命令查看%SYBASE%和%SYBASE_OCS%的选项是否正确,若否则建立一个batch批处理文件(范例见2.1小节),设置好12.5.4的环境变量%SYBASE%和%SYBASE_OCS%的值。博主后来用set命令查看了自己电脑的系统环境变量和用户环境变量。结果如下图所示。 3 该问题的经验总结 关于“Sybase win客户端打开SQL Advantage 12.5.1报错:Internal failure while initializing SQL Advantag”的问题,主要是环境变量的问题引起的。博主的情况是只安装了SQL Advantage12.5.1的版本,而论坛上两位提问者同时安装了11.5和12.5的版本。博主是把系统环境变量PATH中的一个变量写错了(“\”错写成了“/”),而论坛上的是之前11.5版本的SQLAdvantage的环境变量设置优先于版本12.5或者没有正确设置。因此,解决这个问题的关键在于两个地方: 1.set命令查看系统中SYBASE的环境变量是否设置正确(若否,使用bat批处理文件或者直接使用set命令设置);2.检查系统环境变量PATH中关于%SYBASE%、%SYBASE_OCS%等是否设置为对应的SYBASE安装路径。 |