[ruby-list:45943] ADO, ADOX を扱うためのクラスライブラリ yado.rb

View: New views
2 Messages — Rating Filter:   Alert me  

[ruby-list:45943] ADO, ADOX を扱うためのクラスライブラリ yado.rb

by YOSHIIZUMI :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

 吉泉といいます。
 初めて投稿させていただきます。

 exerbでrubyスクリプトをWindowsアプリにできるのに引かれて、rubyを始めた素人日
曜プログラマーです。
 Rumix0.4の通常版を使わせていただきました。日本語メッセージのインストーラで、
gem, rake, exerb も一緒にインストールされるので助かります。

 私自身は GUIが苦手で Officeのようなアプリからなるべく離れたいと望みながら、仕
事では周囲が Windows Office only なので、それとの協調もしないわけにはいかず……

 そこで、できるだけOfficeソフトを使わずに、簡単に関連ファイルを扱えないかと思
い、その手段としてrubyに注目しました。

 Windowsに用意されているADOおよびADOXの仕組を利用すれば、Access, Excelのファイ
ルを作成・参照・更新できます。それらアプリがインストールされていないパソコンで
も大丈夫です。
 そうしたADOによる処理をrubyで簡単に実現するために作ってみたのが yado.rb です。


紹介ページ:    http://cup.sakura.ne.jp/yado.htm
ZIPアーカイブ: http://cup.sakura.ne.jp/yado100.zip

 Access, ExcelのファイルをSQL命令で操作したい時に、同梱の yadosql.exe を利用で
きます。
 これをDOSプロンプトで起動すると、標準入力から入力されたSQL命令が実行され、そ
の結果が標準出力・標準エラー出力に出力されます。
 このexeは、yadosql.rb, yado.rb, win32ole.so の3つをexerbで固めたものです。

 ADOを扱うためのrubyのライブラリは既にいくつかありますが、特別なインストールな
しで、ごく簡単に使えればと思って yado.rb を作ってみました。
 例えば、次の実質4行のスクリプトで、Accessのサンプルデータベース Northwind.mdb
 の標準テーブルの中身をExcelファイルとして書き出します(バイナリデータは除きます)。


--------
#! ruby.exe -KS
require 'yado'
db = Yado.new  'Northwind.mdb'
db.print_all_values  'OUTPUT.XLS'  # OUTPUT.TXTだとタブ区切りテキストに
db.close
--------

 また、上の「db.print_all_values ……」のところを
    db.print_binary_values  '商品区分',  '図'
とすれば、Northwind.mdb に含まれている8つのBMPデータをディスクに書き出します。


 もちろん、queryメソッドによってSQL命令の実行も可能です。
    db.query("SELECT * FROM 受注明細;") {|rs|  puts rs.join("\t")}
というような記述ができます。

 なんとも素人っぽい発想のスクリプトですが、よかったらおお試しください。



[ruby-list:46510] [ANN] MS-WindowsでAccessファイルなどを扱う yado.rb ver 1.5

by YOSHIIZUMI :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

 吉泉といいます。

 MS-Windowsで Access | Excelファイルを処理するためのクラスライブラリ yado.rb
をバージョンアップしました。前回、3月末に ver 1.0 を紹介させていただいたもので
す。
 ADO, ADOX の仕組みを利用して実現しているので、Access, Excel がインストールさ
れていないパソコンでも動きます。

紹介ページ:    http://cup.sakura.ne.jp/yado.htm
ZIPアーカイブ: http://cup.sakura.ne.jp/yado150.zip

 主なバージョンアップ項目は次のとおりです。

(1) Access2007ファイル *.accdb を扱えるようにしました。
 ただし、扱うためには Office2007 がパソコンにインストールされている必要があり
ます。Access2007はなくてもかまいません。
(2) SQL命令の実行結果(主にselect命令の結果)をResultクラスで返す query_resultメ
ソッドを設けました。
 これにより、SQL命令の実行結果をヘッダ付きで csv, txt そして xls(Excel) のファ
イルとして書き出せるようになりました。
(3) xml | adtg ファイルを書き出すメソッド query_persist を設けました。
(4) xml | adtg ファイルを読み込むメソッド load_persist を設けました。

 以上です。よかったら覗いてみて下さい。