Ruby进行mysql操作的时候,提示 in `query’: query: not connected (Mysql::Error)

被 in `query’: query: not connected (Mysql::Error)这个问题困扰好久了,先附上我的代码

  1. require 'rubygems'
  2. require 'mysql'
  3. conn =  Mysql.real_connect('192.168.87.126','admin','password','test')
  4. conn.query('set names utf8')
  5. File.open("old_content_id.txt") do |file|
  6. while content_id = file.gets
  7. res = conn.query('select * from content where  content_id = '+content_id.strip.to_s)
  8. res.each do |row|
  9. puts row[2]
  10. end
  11. end
  12. end

乍一看,代码没有什么问题,可是执行的时候偏偏会报in `query’: query: not connected (Mysql::Error)的错误,无奈之下,我把conn = Mysql.real_connect(‘192.168.87.126′,’admin’,’password’,’test’)放到了for循环的里 面,这样做的后果就是每次循环都会创建一个连接,导致连接数过多。(PS:加上了关闭连接的语句也不会起作用,因为基本是这边发送了关闭的请 求,mysql从接到请求到关闭完成还是需要一段时间的,连接照样不会及时释放掉。)

一直觉得ruby不至于做的这么差劲,以为是代码有问题,可是同样的方法连接oracle完全没有问题,简直是无奈至极。

千算万算没有算到又是libmysql.dll的问题,从http://instantrails.rubyforge.org/svn /trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll 下载了个旧版本的libmysql.dll文件之后,问题竟然解决了。

原因是:新版本的mysql的一些相关接口变化了,ruby的mysql接口还没跟上,所以下载个旧版本的就好用了
汗~~

in `const_get’: no such file to load — safariwatir (MissingSourceFile)

今天在学习ruby+watir的时候,发生了一个错误,错误提示是:in `const_get’: no such file to load — safariwatir (MissingSourceFile)

从google和baidu查了很多资料,貌似和我遇到的都不一样

我的代码是:

  1. require 'rubygems'
  2. require 'watir'
  3. require 'watir/browser'
  4. require 'watir/ie'
  5. include Watir
  6. require File.dirname(__FILE__)+"/ClassLogin.rb"

后来我调整了一下

  1. require File.dirname(__FILE__)+"/ClassLogin.rb"

的位置,即

  1. require 'rubygems'
  2. require File.dirname(__FILE__)+"/ClassLogin.rb"
  3. require 'watir'
  4. require 'watir/browser'
  5. require 'watir/ie'
  6. include Watir

问题就解决了。

ubuntu+eclipse+ruby+watir的搭建

1. 下载eclipse

2. 安装ruby:sudo apt-get install ruby rubygems

3. 安装watir:
更新ruby:sudo gem install rubygems-update
安装:sudo gem install firewatir

4. 在eclipse上
安装rdt插件:http://update.aptana.com/update/rdt/3.2/
安装subclipse:http://subclipse.tigris.org/update_1.0.x

5. 如果用的是firefox浏览器,还需要安装JSSH扩展,下载地址如下

http://wiki.openqa.org/display/WTR/FireWatir+Installation