忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
現代魔法(nearly equal 情報技術)を勉強中な人のメモ(チラシの裏)
/ 2024/04/25 (Thu) / 編集
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/ 2010/05/21 (Fri) / 編集
[Mac] Apache2 + php5 + SQLite3で少し書いたりしたけど、こんどはRubyでやってみる。

ちなみに、SQLiteというのはデータベースなんだけど、MySQLなんかがどっか特別な場所にデータベースを一括保存すると違い、SQLiteだと任意の(デフォルトではコマンドを実行した)ディレクトリにデータベースのファイルが生成される。
なのでデータベースの移動とかが簡単、このファイルをコピーすればいいだけだからね!ただしやっぱ機能的には劣るんだけどまぁちょっと使うくらいなら問題ない。

とりあえず、必要なパッケージを用意して環境構築できたらGO! (RubyとRubyGemsはすでにインストールされてるものとします。)
%sudo yum -y install sqlite sqlite-devel ruby-sqlite3

とりあえずはコマンドラインで動かすテスト
データベースの作成、今回は「test_database.db」というファイル名で作るよ
%sqlite3 test_database.db

そしてテーブルを作成してきちんと出来たか確認。
sqlite> create table items (
   ...> id integer primary key,
   ...> timestamp text not null,
   ...> text text
   ...> );
sqlite> .table
items

レコードを追加して、selectで確認
sqlite> insert into items (timestamp, text) values (datetime('now', 'localtime'), 'hoge');
sqlite> select * from items;
1|2010-05-21 15:27:41|hoge

SQLiteを修了して、きちんとデータベースのファイルが生成されているか見てみる。
sqlite>.exit
%ls
test_database.db


上のようなことをRubyでやるとこんなプログラムになるらしいです。
require 'rubygems' # gem install `sqlite3-ruby した場合
require 'sqlite3'

#データベースを開く(なかったら作る)
db = SQLite3::Database.new("database.db")

time = Time.now.strftime("%Y-%m-%d %X:%M:%S")
name='test name'
text='text test'

#テーブルを作る
sql = < time, :name => name, :text => text}
sql = "insert into items values (:id, :timestamp, :name, :text)"
db.execute(sql, new_item)

#表示
sql_opt = ""
sql = "select * from items #{sql_opt}"
db.execute(sql) {|row|
  p row
}

puts '\t ------ \t'

db.execute2(sql) do |row|_
#rowは結果の配列。ただし最初のレコードは列名。
 puts row.join("\t")
end

db.close

実行結果はこんな感じ、excute2で列名を表示するテストもついでにやってます。
%ruby db_test.rb
["1", "2010-05-21 15:35:13:35:13", "test name", "text test"]
\t ------ \t
id	timestamp	name	text
1	2010-05-21 15:35:13:35:13	test name	text test

拍手[0回]

PR
忍者ブログ [PR]