[Ruby] RubyDBI
データベースの用意は完成.こいつをRubyからいじってみる.
なんと,Rubyからデータベースを気にせず?プログラミングができるインタフェースが用意されているという.
そいつをインストールしてみる.
Ruby/DBIインストール for MacOSX(環境あんまり関係無いと思うが)
MySQLと,PostgreSQLを両方とも使ってみたいが,とりあえず,PostgreSQLで試してみる.
必要なモノは,SQLite,SQLの拡張モジュール?,Ruby/DBIの3つ.
これらを,この順番でインストール.
SQLite
こいつは,普通通り,
>./configure >make >sudo make install
でOK.
PostgresSQL用のモジュール
こいつは,Rubyのスクリプトでmakeの設定をする.
>ruby extconf.rb --with-pgsql-dir=/usr/local/pgsql >make >sudo make install
これで,OK.extconf.rbのオプションはググって参考にした.
※MacOSX Tiger 10.4.5,Ruby 1.8.4
Ruby/DBI
こいつもRubyのスクリプトで.
>ruby setup.rb config --without=dbd_sybase >ruby setup.rb setup >sudo ruby setup.rb install
これで,OK.上記と同様にextconf.rbのオプションはググって参考にした.
テスト〜早速試す
PostgresSQLからデータを読み込むスクリプト書いてみる.
前のPostgreSQLの設定で試したデータベースをのぞいてみる.
データベースはこんな感じ.
test=# select * from human; name | age ----------+----- hoge | 20 hogehoge | 27 (2 rows)
スクリプト.
#!/usr/local/bin/ruby
require "dbi"
dbh = DBI.connect("DBI:Pg:test", 'username', 'passowrd')
if(dbh)
print "connected.?n"
# select from datatable "human"
sth = dbh.prepare("select * from human")
sth.execute
# pirnt each row from db.
while row=sth.fetch do
print row,"?n"
end
dbh.disconnect
else
print "connection failed.?n"
end
これでOK.実行してみる.
>ruby test.rb >connected. >hoge20 >hogehoge27
をを!できた.でも,なんだか要素がくっついている・・・.