How to connect DB2 with ruby on rails 如何连接DB2数据库

由于单位需要开发一个系统,需要使用DB2 (8.2通用企业版)数据库存储上千万条数据,为了试验ruby on rails的压力,开发环境就用ruby on rails 2.3.4,rails、DB2都安装在同一台windows xp上。一开始就在连接数据库上遇到了麻烦,搭建好rails环境,安装驱动:gem install ibm_db,晕,说要ruby 1.8.7,卸载1.8.6重装1.8.7,又gem install ibm_db,晕,又提示一错误,但是gem list查看已经安装上了,测试未通过,以为是安装问题,上http://rubyforge.org/frs/?group_id=2361直接下载ibm_db-2.5.5-mswin32.gem包安装,但是还是未成功。上IBM官网http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0705chun/index.html?S_TACT=105AGX52&S_CMP=tut-cto查看,原来“最新版本的 IBM_DB 适配器和驱动程序要求使用 DB2 9,FixPack 2 或 DB2 8,FixPack 15”,哈哈原来需要补丁包FixPack 15,上http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg21256059下载“DB2 Enterprise Server Edition ”地址:ftp://public.dhe.ibm.com/ps/products/db2/fixes2/english-us/db2winIA32v8/fixpak/FP18_WR21443/FP18_WR21443_ESE.exe,注意与自己的DB2版本匹配。一阵等待、忙乎终于安装完毕,进入开始->ibm db2->一般管理工具->控制中心->高级->所选->创建数据库->标准,一阵下一步到了最后一步"制定此数据库的语言环境",国家/地区:中华人民共和国(默认也行),地域:cn,代码集:utf-8,OK!测试,能连上数据库了,填上表单提交,英文数字没问题,中文不能保存,但是中文后面跟上空格或英文就没问题了,这怎么行,又是一阵狂搜,几多希望几多失望。最后在一篇“使用参数化查询改进 DB2 Ruby on Rails 应用程序的安全性和性能”http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1001db2rubyonrailsapps/index.html发现在database.yml中增加一个参数 parameterized: true试做,没想到成功了,但是原理不是很懂,最后的database.yml配置如下

development:
  adapter:     ibm_db
  username:    Administrator
  password: mypassword

  database:    test_db
  parameterized: true

现在可以存取汉字了,但是控制中心看到的字段汉字数据是乱码,这肯定是编码页的问题,DB2命令行窗口:db2 get db cfg for test查看数据库参数

数据库配置发行版级别                                    = 0x0a00
 数据库发行版级别                                        = 0x0a00

 数据库地域                                              = CN
 数据库代码页                                            = 1208
 数据库代码集                                            = UTF-8
 数据库国家/地区代码                                    = 86
 数据库整理顺序                                          = BINARY
 备用整理顺序                              (ALT_COLLATE) =
 数据库页大小                                            = 4096

没错呀,又鼓捣一阵子:

db2 connect to test

db2set db2codepage=1208

db2 terminate

db2 connect to test

关闭rails

重启ruby script/server

进入页面表单填上汉字提交成功,在控制中心查看呵呵,汉字再也不乱码了!

有些原理没搞懂,记录一下应付逐渐衰退的记忆!

你可能感兴趣的:(数据库,IBM,db2,database,Ruby,Rails)