delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
delphi+ado+oracle碰到难题!!! Delphi / Windows SDK/API
http://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  
 

posted on 2008-10-20 10:33 delphi2007 阅读(354) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。