为了显示SQLJ的函数,装了正版的Sybase 12.5的客户端软件,Sql Advantage和Sybase Central 4.3都有,将locales下locales.dat中[NT]下认字符集改为cp850后locale = default, us_english, cp850后,Sql Advantage显示中文正常,然而悲剧的Central v4.3中菜单项虽为中文,但其中存储过程中的汉字却为乱码。怎么改都无法正常显示。
许多方案上,都要求改变服务器端字符集,但现在生产数据库用的cp850字符集岂能随便改动?反复尝试,无法解决。1 改locales.dat文件为cp850,无效。2 改sybase central的连接配置文件,默认字符集为cp850,默认语言为us_english等,均无效。
最后终于试出:locales.dat中,[NT]下locale = default, us_english, eucgb,中间是否us_english可能不影响,也许连接设置也要对应。而在Sybase central v4.3的连接设置中,字符集为cp850,语言为us_english,这样在用sql advantage时或许有警告提示,但不影响使用。而在Sybase central中过程中的汉字显示正常。
---------然而过了周末之后,再打开,用此设置又无法显示中文,反而是连接设置时将字符编码设为eucgb可以显示中文。还得多试试啊。
新装Sybase客户端15.0版本,原有的sql advantage被换成了interactive sql,这是一个类似于新版oracle客户端的sql查询工具,查看版权日期,似乎也不过是2008年的,看来以前使用的版本真是太老了。在12.5版本的sql advantage里,locals.dat的相应项目改为cp850即可显示汉字,然而在此版本里,interactive sql与sybase central 6.0使用的似乎是同一连接组件,cp850在两个工具里均无法正常工作。改为 encgb后,两个可以正常显示汉字。
有次连接sybase central6.0时,发现等待时间特别长,以为连接出了问题。结果一会儿居然打开了。原来它自动记忆了上次打开的位置,因为上次退出时打开位置在“过程”,所以这次连接登录后要直接自动打开在过程位置,而打开过程本来就要花很长时间,这点跟12.5的sybase central 4.3不一样。虚惊一场。
另外:这两个工具在关闭窗口后,均会在内存保留相当长时间。开始以为是程序bug,后来发现原来是选项中的“启用快速启动程序”的作用,选中此项的情况下,两个程序会占用近200M内存,并打开有两个侦听端口,若将此选项取消,则关闭后程序进程正常消失。