应用ZcxOracle实现Zope和Oralce数据库的连接

应用ZcxOracle实现Zope和Oralce数据库的连接


  可扩展性强是Zope平台若干优越性中的一条,除了自带的主要面向文档管理的ZODB数据库之外,Zope还可以做为开发平台,通过相应的第三方产品连接其他数据库进行数据管理。

  为了实现和Oralce数据库的连接,我们需要安装两个产品——cxOracle和ZcxOracle。

  cxOracle是pyhon产品,将该产品包(cx_Oracle-4.4.tar.gz)上传到服务器上之后解压缩,然后在产品目录下键入如下命令:

# python setup.py build
# python setup.py install

即可完成该产品的安装过程。

  安装结束后,该产品的源码库将被拷贝到下面的目录中:
    “/usr/local/lib/python2.4/site-packages/”

  ZcxOracle就是个普通的Plone产品了,直接解压缩拷贝到$Instance/Products/目录下面然后赋予Zope用户权限即可。

  以上安装步骤完成后,重新启动Zope实例,即会在Zope后台看到可以添加新的内容类型Z cxOracle Database Connection,数据库连接字符串的格式为

用户名/密码@服务器名称

  即可正常调用Oralce数据库,实现数据管理功能。

  在实际的使用过程中,我们发现该产品在使用上受到了编码的限制,在数据库编码已经正常设置为UTF8编码前提下,使用该产品无法实现单数个UTF8编码字符串数据的录入。

  经过代码分析显示该问题是受到了Zope安装服务器的环境变量的影响,由于更改环境变量可能会影响其他服务的使用,因此我们采用了更改ZcxOracle产品中相关代码的方式来解决这个问题。具体更改如下所示:

文件 $INSTANCE/Products/ZcxOracleDA/db.py

添加如下内容

#added by lindalee to support utf8 encode
import os

class DB(TM):
#added by lindalee to support utf8 encode
    os.environ["NLS_LANG"]="SIMPLIFIED CHINESE_CHINA.UTF8";

  重新启动实例之后,UTF8编码字符串录入问题解决。

 

来源:http://beauty.hit.edu.cn/myStudy/Product/document.2008-10-16.9512050648

你可能感兴趣的:(应用ZcxOracle实现Zope和Oralce数据库的连接)