« mod_rubyとWEBrickの比較 | トップページ | チェコ共和国から »

2007/08/09

データベース接続用クラス DBConnect

最近PHPからRubyへの移行を進めているのですが、流行物があまり好きではない僕としてはRuby on Railsにどうしても馴染めなくて、PHPで作っていた自分用クラスをRubyに移植する作業を行っています。

その一つとしてデータベースに接続するためのクラスにDBConnectというのがあり、とりあえず動作させることができる程度にはなったので、ここで公開してみようと思います。ちなみにMySQL版とAccess(mdb)版があり、どちらでも同じクラスで利用できるようになっています。

「dbconnect.zip」をダウンロード

クラス名 DBConnect

メソッド

initialize(host, user, pass, database) 初期化処理用
open(host, user, pass, database) データベースを開く(初期化時に実行される)
close() データベースを閉じる
query(sql) SQLを実行(配列の戻り値あり)
exec(sql) SQLを実行(戻り値無し)
sql2array(sql) query実行時に実行され、実行結果を配列に変換
list_fields(table) 指定したテーブルの列名を配列で返す
escape_string(str) 文字列のエスケープ処理

非常に機能不足だと感じられるかもしれませんが、とりあえず動作させることはできます。
使用例は

#!/usr/bin/ruby
 
dbtype = "mysql"
#dbtype = "mdb"
 
case dbtype
when "mysql"
  require 'mysql'
  require dbconnect_mysql.rb
when "mdb"
  require 'win32ole'
  require dbconnect_mdb.rb
end
 
host = "localhost"
user = "test"
pass = "test"
database = "sample"
if dbtype=="mdb" then
  database += ".mdb"
end
 
db = DBConnect.new(host, user, pass, database)
 
sql = "SELECT * FROM test_table"
rs = db.query(sql)
 
i = 0
rs.each do |row|
  print "#{i}¥n"
  row.each do |key, val|
    print "#{key} = #{val}¥n"
  end
  i += 1
end
 
db.close()

ソースを見てもらえばわかりますが、Access(mdb)版はかなり適当です。
またMySQL版にはMySQL/Rubyが必要です。

Ruby初心者なのもので、もし何か意見やアドバイスなどがあれば教えて頂けると助かります。

|

« mod_rubyとWEBrickの比較 | トップページ | チェコ共和国から »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/79953/16063524

この記事へのトラックバック一覧です: データベース接続用クラス DBConnect:

« mod_rubyとWEBrickの比較 | トップページ | チェコ共和国から »