当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [原创]Ruby通过postgre-pr访问PostgreSQL数据库
帖子发表于 : 2007-07-03 22:33 
头像

注册: 2007-04-23 17:40
帖子: 659
送出感谢: 0 次
接收感谢: 0 次
测试环境:
代码:
ruby: 1.8.6
rubygems: 0.9.4
postgres-pr: 0.4.0
postgresql: 8.2.4

安装postgres-pr:
代码:
gem install postgres-pr-0.4.0.gem

测试代码:
代码:
require 'postgres-pr/connection'

c = PostgresPR::Connection.new(databasename, username, password)
p c.query('select * from tablename')

执行该代码,报错:
代码:
no such file to load -- postgres-pr/connection (LoadError)

遍寻网络不解,难道是问题太easy,没有人遇到过?
无法,只好一点点分析postgres-pr包,终于让我找到了,原来是require搜索路径的问题,解决方法:
代码:
$LOAD_PATH.unshift '/usr/local/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib'
require 'postgres-pr/connection'

c = PostgresPR::Connection.new(databasename, username, password)
p c.query('select * from tablename')

执行,又会报错:
代码:
No such file or directory - /tmp/.s.PGSQL.5432 (Errno::ENOENT)

这是个什么文件啊?
结果又是遍寻网络不解,还得自己分析。
打开connection.rb,找到了该文件字符串:
代码:
  DEFAULT_URI =
    if RUBY_PLATFORM.include?('win')
      'tcp://' + DEFAULT_HOST + ':' + DEFAULT_PORT.to_s
    else
      'unix:' + File.join(DEFAULT_PATH, '.s.PGSQL.' + DEFAULT_PORT.to_s) 
    end

与平台相关,要不用win平台的URI试试看?修改为:
代码:
  DEFAULT_URI = 'tcp://' + DEFAULT_HOST + ':' + DEFAULT_PORT.to_s
    #if RUBY_PLATFORM.include?('win')
    #  'tcp://' + DEFAULT_HOST + ':' + DEFAULT_PORT.to_s
    #else
    #  'unix:' + File.join(DEFAULT_PATH, '.s.PGSQL.' + DEFAULT_PORT.to_s) 
    #end

执行测试代码,成功~~~
我的PostgreSQL 8.2.4是通过新立得直接安装的,反正找不到UNIX平台下的临时文件。
不管了……


_________________

吾生也有涯,而知也无涯,以有涯随无涯,SB啊~~~~~~~~~~


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-07-10 16:14 
头像

注册: 2007-04-23 17:40
帖子: 659
送出感谢: 0 次
接收感谢: 0 次
没人关注?
没有用pg-pr,那大虾都用啥?


_________________

吾生也有涯,而知也无涯,以有涯随无涯,SB啊~~~~~~~~~~


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-07-13 1:06 

注册: 2007-07-13 1:01
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
postgres-pr是纯ruby的驱动,性能不好。本地驱动是libpgsql-ruby (apt-get安装, gem安装另外要装pg的dev库,麻烦)
然后require 'postgres' 就可以了:^)


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译