2011年5月10日

[ruby-list:48082] ruby1.9系でのdbiを使ったselect_allについて

笠原です。

時刻情報の計算の時は、本当に助かりました。

無事動くコードが出来て、せっかくなので最新の1.9系でも動かしてみようかと思った
のですが、dbiを使ってDBにアクセスするところで1.8系と1.9系で挙動が異なり
つまずいてしまっております。

[root@xxxxx work]# cat test.rb
require 'rubygems'
require 'dbi'

dbh = DBI.connect("DBI:SQLite3::memory:")
dbh.do("CREATE TABLE t1 ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT );")
dbh.do("INSERT INTO t1 (name) VALUES ('name1') ;")
dbh.do("INSERT INTO t1 (name) VALUES ('name2') ;")
rows = dbh.select_all("SELECT * FROM t1;")
p rows
[root@xxxxx work]

というテスト用のコードで

[root@xxxxx work]# /usr/bin/ruby -v
ruby 1.8.7 (2011-02-18 patchlevel 334) [i386-linux]
[root@xxxxx work]# /usr/bin/ruby test.rb
[[1, "name1"], [2, "name2"]]
[root@xxxxx work]

と1.8系で実行すると私の欲しい結果が得られるのですが

[root@xxxxx work]# /usr/local/ruby/bin/ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]
[root@xxxxx work]# /usr/local/ruby/bin/ruby test.rb
[[2, "name2"], [2, "name2"]]
[root@xxxxx work]#

と1.9.2をダウンロードしてきてコンパイルすると上手く動きません。
なんで同じ結果が2つ出てくるの???
#自力ソースコンパイルにはこだわっていないので、fedora14に入るrpmパッケージが
 あればそれを突っ込むことは何ら問題ないです。私が見つけられなかっただけです。

そもそも、rubyのコンパイルに失敗しているのか、私のコードが1.9用のコードとして
正しくないのか、何が悪いのか???という状態なのですが、
再度皆様のお知恵を拝借出来ませんでしょうか。

--
かさはら みつお <m.kasahara13@xxxxx>


投稿者 xml-rpc : 2011年5月10日 18:57
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103694
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。