delphi+ado+oracle碰到难题!!! Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiDB/html/delphi_20061225203107103.html
服务器:繁体WinXP+oracle8i,字符集:ZHT16BIG5.
客户机:简体WinXP,字符集原来是:ZHS16GBK,现在改为和服务器一样的:ZHT16BIG5.
功能是要在oracle的VARCHAR字段中保存繁体文字,在BLOB字段中保存图片.
现在碰到以下问题:
1.如果采用'Microsoft OLE DB Provider for Oracle',在简体客户机上向服务器添加简体文字,在繁体服务器上文字转换为繁体,并且显示正常.但是没办法向BLOB字段添加大于4k的jpg图片,使用了各种方法也没有办法解决,包括流.,请问有没有办法添加大于4k的图片?
2.如果采用"Oracle Provider for OLE DB",向Oracle服务器的BLOB字段添加图片正常,简体转换为繁体大部分文字显示正常,部分显示'?',例如简体'粤东莞'添加到繁体服务器上就显示繁体 '?东莞',在简体客户机上select出来又是正常的.请问有没有办法使繁体oracle所有繁体文字显示正常?
试了好多天了也没有找到办法,请各位大侠帮忙解决其中之一.谢谢!
Oracle用ODAC这个组件试试。应该可以。
第二个问题:
如果你的oracle的字符集是繁体,插入简体汉字,显示会不正常。如果你把oracle的字符集改为简体中文,就可以正常显示简体。
这个无所谓。重要的是客户端可以正常显示就可以。
可以在oracle服务器上面打开注册表
run->regedit.exe->HKEY_Local_Machine->software->oracle->homeo->NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
(健值) 简体中文 繁体中文
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
不同的oracle 可能位置不一样。
没有遇到这多字符集处理的情况
对于图片文件,我用long row字段,好像没有遇到你说的那种情况
我两个驱动都用过,不过,我们的服务器用的是aix
在win平台下,你还是老老实实用mssql才是王道!
我试了一下,sizzg的第二个方法可以解决问题,只是各种信息是乱码,不过只要不影响客户端使用就OK了,我要找一个繁体的客户端测试一下.!
对于lwk_hlj的方法,我想也可以解决问题,但是Oracle以后好象不支持long row字段,如果实在没有办法,我也只有采用这种方法.
在此谢谢sizzg和lwk_hlj了.
这下真是难搞了
对于sizzg的方法,我在繁体客户机上试了,也要改注册表,这样可能不行,我不可能到每一台繁体客户机上改注册表,改天我再试一下lwk_hlj的方法.
不成熟的意见:好象有一个ADO连接里面有什么PACKAGE SIZE=4096这样的东西吧?会不会和你的4K大小有所关系呢?这个我没有验证过,你自己看一下下吧。
我回过很多贴了,ado对oracle的支持是有问题的,特别是对blob字段
1.升级mdac
2.一定要用"Oracle Provider for OLE DB"
在delphi下用oracle,最好用odac,bde/odbc也没问题,你也可用dbexpress