SQLを書いてみた

とりあえずライブスケジュールを取り込み、icalendarに変換することができたので、今度はデータベースに出力すべく挑戦中。

Ruby on Railsを使えばSQLを意識しなくとも済むみたいだけど、コマンド実行できるか分からなかったため、ひとまずSQLiteを使ってみた。ひとまずテーブルの作成とレコードの書き込み、select操作ができた。しかしながら、あの(!?)暗号か呪文に見えてならないSQLにどうしても馴染めず、なかなか理解もできず…

いつになったら、データベースにスケジュールが格納できることやら。まずは難しいことは考えずに、1つのテーブルにスケジュールを登録しよう。


require ‘rubygems’
require ’sqlite3′
if $*.length != 1
puts “Usage: ruby #{$0}
exit(1)
end
unless File.exist?($*[0])
puts “File #{$*[0]} not exist.”
exit(1)
end
if File.exist?(’sample_sqlite3.db’)
db = SQLite3::Database.open(“sample_sqlite3.db”)
db.type_translation = true
else
db = SQLite3::Database.new(’sample_sqlite3.db’)
db.type_translation = true
sql = “create table instruments (id INTEGER PRIMARY KEY,short_name TEXT UNIQUE ON CONFLICT IGNORE,name TEXT)”
db.execute(sql)
end
file = open($*[0])
while l = file.gets
short_name, name = l.gsub!(/¥n/,””).split(’,’)
unless (short_name == “” && name == “”)
sql = “insert into instruments (short_name, name) values (’#{short_name}’,’#{name}’)”
db.execute(sql)
end
end
file.close
sql=”select * from instruments”
result=db.execute(sql)
result.each do |m|
puts “#{m[0]}¥t#{m[1]}¥t#{m[2]}”
end
db.close