客户端环境:中文WIN2000,vb 6.0 ,oracle9.2.0.1客户端驱动程序,字符集WE8ISO8859P1   
  服务器:ORACLE   9.2.0.1  DATA   SERVER   字符集WE8ISO8859P1   
    
问题:在代码里用sql提交汉字数据,查询时却是乱码!!  在PL/SQL里面插入数据时不会显示乱码,请各位大哥帮忙解决!
数据库连接对象是RDO,已经不能进行更改了
 
    CurUserNo = GetCommandValue(1)
    CurUserName = GetCommandValue(2)
    DSN_UID_PWD = GetCommandValue(6)    Set SenE = rdoEngine.rdoEnvironments(0)
    SenE.CursorDriver = rdUseServer
    Set SenC = SenE.OpenConnection("", False, False, DSN_UID_PWD)    SenC.QueryTimeout = 180
    Where_String = ""
    PRINT_WHERE_STRING = ""
    SORT_STRING = ""
    PRINT_WHERE_STRING = ""
    PrintCopies = 1在后面插入的数据,在前台能够正常显示,一旦修改之后就变成乱码了!非常急!!!

解决方案 »

  1.   

    服务器和客户端都改为ZHS16GBK吧
      

  2.   

    http://topic.csdn.net/t/20060920/10/5034502.html
    转: 
    在oracle   8之前,可以用直接修改数据字典表props$来改变数据库的字符集。但oracle8之后,至少有三张系统表记录了数据库字符集的信息,只改props$表并不完全,可能引起严重的后果。正确的修改方法如下:   
        
        $sqlplus   /nolog   
        
        SQL>conn   /   as   sysdba;   
        
        若此时数据库服务器已启动,则先执行SHUTDOWN   IMMEDIATE命令关闭数据库服务器,然后执行以下命令:   
        
        SQL>STARTUP   MOUNT;   
        
        SQL>ALTER   SYSTEM   ENABLE   RESTRICTED   SESSION;   
        
        SQL>ALTER   SYSTEM   SET   JOB_QUEUE_PROCESSES=0;   
        
        SQL>ALTER   SYSTEM   SET   AQ_TM_PROCESSES=0;   
        
        SQL>ALTER   DATABASE   OPEN;   
        
        SQL>ALTER   DATABASE   CHARACTER   SET   ZHS16GBK;   
        
        SQL>ALTER   DATABASE   national   CHARACTER   SET   ZHS16GBK;   
        
        SQL>SHUTDOWN   IMMEDIATE;   
        
        SQL>STARTUP   
        
        2、修改dmp文件字符集   
        
        上文说过,dmp文件的第2第3字节记录了字符集信息,因此直接修改dmp文件的第2第3字节的内容就可以‘骗’过oracle的检查。这样做理论上也仅是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些字符集,如US7ASCII,WE8ISO8859P1,ZHS16CGB231280,ZHS16GBK基本都可以改。因为改的只是dmp文件,所以影响不大。   
        
        具体的修改方法比较多,最简单的就是直接用UltraEdit修改dmp文件的第2和第3个字节。比如想将dmp文件的字符集改为ZHS16GBK,可以用以下SQL查出该种字符集对应的16进制代码:   
        
        SQL>   select   to_char(nls_charset_id('ZHS16GBK'),   'xxxx')   from   dual;   
        
        0354   
        
        然后将dmp文件的2、3字节修改为0354即可。
      

  3.   

    老大,我不能修改字符集!是必须要到上面的字符集的!这是大前提!
    当然,中文字符集SIMPLIFIED CHINESE_CHINA.ZHS16GBK是没有问题的!