用delphi-ado通过odbc连接oracleINSERT INTO SMSSEND  VALUES('0000','1111',1111,'012345', '0709810943693141',
 2,'河北华维纯净水有限公司','桶装饮用水','20060103182135',4408897,'N');结果从oracle里面查询,汉字都变成了“靠靠靠靠靠”和“靠靠”
这是怎么回事呢?

解决方案 »

  1.   

    HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE ->NLS_LANG 的值是不是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      

  2.   

    tmd,它竟敢靠你,你把它的cpu砸了,看它还敢靠你!嗬嗬
      

  3.   

    把dbexpora.dll用regsvr32卸载了,然后重新注册一次,不注册也行放到system32下去就行了
      

  4.   

    你可用sys用户登录到数据库,查看props$表中
    NLS_CHARACTERSET  及NLS_NCHAR_CHARACTERSET
    字段的值(一般为ZHS16GBK)
    然后再查看注册表中NLS_LANG的值的字符集的值(.后面的,与前面无关)以上的三个值的内容必须一致,否则汉字的插入/查讯会不正确
      

  5.   

    应该是oracle的字符集与系统的字符集的设置问题
      

  6.   

    INSERT INTO SMSSEND  VALUES('0000','1111',1111,'012345', '0709810943693141',
     2,'再靠我就把你砸了!','小样的','20060103182135',4408897,'N');
      

  7.   

    升级BDE,或者升级ODBC驱动,估计就不会靠了吧
      

  8.   

    HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE ->NLS_LANG 的值是不是SIMPLIFIED CHINESE_CHINA.ZHS16GBK你可用sys用户登录到数据库,查看props$表中
    NLS_CHARACTERSET  及NLS_NCHAR_CHARACTERSET
    字段的值(一般为ZHS16GBK)
    然后再查看注册表中NLS_LANG的值的字符集的值(.后面的,与前面无关)以上的三个值的内容必须一致,否则汉字的插入/查讯会不正确
      

  9.   

    HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE ->NLS_LANG 的值是不是SIMPLIFIED CHINESE_CHINA.ZHS16GBK你可用sys用户登录到数据库,查看props$表中
    NLS_CHARACTERSET  及NLS_NCHAR_CHARACTERSET
    字段的值(一般为ZHS16GBK)
    然后再查看注册表中NLS_LANG的值的字符集的值(.后面的,与前面无关)以上的三个值的内容必须一致,否则汉字的插入/查讯会不正确
      

  10.   

    哈哈,看来事情还真是比较巧的,后来改了各种字符集,汉字变成了“######”的情况也有
    我用的是oracle odbc,后来改成用microsoft odbc for oracle就没事了
    可能我机器上oracle odbc的安装有问题,我这某个地方我没设置好我看了一下注册表中的HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE ->NLS_LANG 
    和props$表中
    NLS_CHARACTERSET  及NLS_NCHAR_CHARACTERSET
    均为“WE8ISO8859P1”不管怎么样,问题算是解决了,给分!