我可能知道你的问题,不过先问你一下,你的sybase数据库和asp所在的web服务器时在一台计算机上吗?
另外,你的字符集是用locals.dat改的吗?

解决方案 »

  1.   

    我和spring是合作者,sybase和asp所在的web在同一台计算计上,
    字符集是在安装完sybase以后在sybase中设置的。然后在ODBC中更改了字符集的设置,设置相同。接着执行asp程序就产生上述错误。
    locals.dat,是什么文件,对于该问题有帮助吗?
    这是我所遇到的一个最头疼的问题,
    多谢赐教。
      

  2.   

    我用sybase ASE 11.5.2版本,用PB开发C/S程序,以及asp的查询程序,为使数据库兼容GBK大字符集,更改数据库字符集,采用修改sybase/locals/locals.dat文件的方法,
    找到[NT]一节,将
    locale = default, us_english, iso_1 改为:
    locale = default, us_english, cp850
    存盘即生效。(如果在客户端,也这么修改)
    在odbc设置中,不需指定字符集,而且我试过,指定也没有作用。
      

  3.   

    更正:在odbc设置中,不需指定字符集,而且我试过,指定反而有副作用。 
      

  4.   

    更改字符集,我用的是Sybase自带的程序server config,在其中设置了language的字符集和语言,问题的缘由如下:由于用InstallShield制作了Delphi的安装文件后,在客户端没有装Delphi,因而程序在客户端运行的时候出现了乱码。于是将Sybase的服务器端的字符集进行了更改,language由english改为chinese,字符集相应的由cp850改为了eucgb,这样程序就可以运行了,乱码的问题解决了。可是却发现主页连不通了,问题如上面说到的。——"灾难性错误"我想有两个解决方法:
    1.由于客户端如果安装了Delphi,就不出现乱码的问题,所以可能是安装文件中没有打包某个文件,可是这个文件是什么呢?我查了很久也不知道。
    2.就算改了字符集,在ODBC的设置上遇此冲突的问题也应该有办法解决的。我的问题就是这样,我现在简直一个头两个大了。难道项目就这样结束不了了么?大家帮帮我
      

  5.   

    更改字符集,我用的是Sybase自带的程序server config,在其中设置了language的字符集和语言,问题的缘由如下:由于用InstallShield制作了Delphi的安装文件后,在客户端没有装Delphi,因而程序在客户端运行的时候出现了乱码。于是将Sybase的服务器端的字符集进行了更改,language由english改为chinese,字符集相应的由cp850改为了eucgb,这样程序就可以运行了,乱码的问题解决了。可是却发现主页连不通了,问题如上面说到的。——"灾难性错误"我想有两个解决方法:
    1.由于客户端如果安装了Delphi,就不出现乱码的问题,所以可能是安装文件中没有打包某个文件,可是这个文件是什么呢?我查了很久也不知道。
    2.就算改了字符集,在ODBC的设置上遇此冲突的问题也应该有办法解决的。我的问题就是这样,我现在简直一个头两个大了。难道项目就这样结束不了了么?大家帮帮我
      

  6.   

    我的项目除了PB之外,也有DELPHI开发的部分,DELPHI除了需安装配置BDE之外,SYBASE客户端也同样要装的,而且也要用前述的办法将SYBASE客户端字符集改为和服务器一致。
    那么问题在于,在客户机上没有server config,那么你所用的改字符集的方法就不适用了,由此推断,如果你的客户端字符集没有正确更改,但你的程序却仍就好用,那么你的SYBASE/DELPHI程序一定运行在一种非标准的模式,建议你采用我所用过的并证明在理论和实际中都没有问题的配置方式。
    另外值得提醒的问题,如果你要修改数据库的字符集,那么连同数据库中的表都必须重建,否则会引起数据表的数据混乱,我可是有前车之鉴的,呵呵。
      

  7.   

    果然是有经验的呀。:)我的确没有找到改客户端字符集的方法,而且在修改了数据库服务器端的字符集后,数据库中的表,特别是含text类型的,全部都得重建——我也这么头大了!那么你的意思是,我不从Sybase Config里面修改字符集,而是从locales.dat里把NT下面的字符集改一下是么?我还想问一下,在做Delphi的安装程序时,你用的是什么程序?我用的是InstallShield 4.0,而使用Delphi 5.0 开发的程序,会不会是这里面缺少什么文件呢?现在InstallShield 最高是什么版本的?
      

  8.   

    我们没做delphi的安装程序,因为我们的运行机制程序不是放在本机的,而是在服务器上分权限共享的,仅在客户端安装程序中带了一套控制程序和部分bde和pb的必要构件.
    做项目时用的is4,我手头就有下载的5,现在最新版改叫“InstallShield Professional - Windows Installer Edition 2.0 ”了,现在很多新程序安装时下面有条灰线写着InstallShield标志的,很漂亮。
    你用我的办法改字符集吧,保你不出意外的。
      

  9.   

    sybase客户端的字符集设置必须与服务器的设置一样,否则用ODBC连接sybase时会出错,如果你的服务器端的字符集是eucgb,那客户端的字符集应该是chs(打开OC OSConfig Utility,设置LANG=chs,各种字符集的对应关系就在locales.dat里),我用ASP连接sybase数据库时也碰到了你的情况,你不妨用这个方法试一下。