Rails 2.0.2 のデフォールトのデータベースは sqlite3 だ。SQLite について Wikipedia を見たら、いろいろと面白い特徴があるらしい。第1はサーバではなくライブラリであること。サーバーにアクセスして使うのではなく、アプリケーションから直接実行できるのだ。第2はデータベースファイルが単一ファイルであること。パソコンからのデータの持ち出しが簡単にできる。この2点だけでも何とも嬉しいアプリケーションなのだ。
何かに使えそうだと考えてみたら、sqlite3 には、sqlite3-ruby というアダプタが存在するので、snrb でこれを require すれば、本格的なデータベースが snrb 上で実行できてしまう。これは、ちょっとうれしいので、さっそく Windows にインストールしてみることにした。 まず、SQLite のホームページから、sqlitedll-3_6_3.zip をダウンロードしてきて、解凍した二つのファイルを C:\Windows\system32 に入れた。次に RubyForge から、sqlite3-ruby-1.2.0-msvcrt-bin.zip をダウロードして解凍し、解凍されたフォルダ上でコマンドプロンプト上で ruby install.rb をした。 さっそく snrb 改め srb で(入力行の値の出力を行う srb はほとんど使わなかったので、snrb をsrb に改名してしまった。)実行したのが次の実行例だ。 C:\Users\******\Ruby>ruby srb.rb srb> require 'sqlite3' srb> db = SQLite3::Database.new('sample.db') srb> ; ml*> sql = <<SQL ml*> create table the_table( ml*> name varchar(10), ml*> age integer, ml*> sex varchar(1) ml*> ); ml*> SQL ml*> ; srb> db.execute(sql) srb> db.execute("insert into the_table values('spiderman', 24, 'm')") srb> db.execute("insert into the_table values('wonderwoman', 27, 'f')") srb> p db.execute("select * from the_table") [["spiderman", "24", "m"], ["wonderwoman", "27", "f"]] srb> db.close srb> exit これで、対話型 Ruby 環境で本格的なリレーショナルデータベースが使えるようになった。何だかすごくうれしい。 おまけ(Windows用 snrb 改め srb) ファイル名: srb (open, eval は全角英数に変換して使用) require 'readline' include Readline module Srb def Srb.edit(prog = nil) if prog != nil File.open('temp.txt','w') {|f| f.write(prog)} end system "notepad temp.txt" prog = IO.read('temp.txt') system "del temp.txt" prog end def Srb.save(path, var) File.open(path, 'w') {|f| f.write(var)} end def Srb.load(path) IO.read(path) end end def _ml prog = "" while true line = readline('ml*> ', true) break if line == ";" prog << line + "\n" end return prog end loop do begin _line = readline('srb> ', true) if _line == ";" then _line = _ml end eval(_line, TOPLEVEL_BINDING) rescue SyntaxError, LoadError, StandardError STDERR.puts "Warning: #$!" end end
by tnomura9
| 2008-10-06 19:49
| Ruby
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||