[[sqliteで削除したり抜粋したり。]]

とりあえずやってみた。sqliteにつながるならできるよね?と思ったら本当にできた。

まぁ、mysqlサーバ側のうんちくはどこにでもあるからRubyクライアント側だけ。

* 接続はどうするの? [#l9d96462]

 require 'mysql2'
 :
 :
 db2 = Mysql2::Client.new(:host => '192.168.1.*', :username => 'ユーザ名', :password => 'パスワード', :database => 'DB名')

ちなみに sqlite3だったら、こうするところね。

 require 'sqlite3'
 :
 :
 db = SQLite3::Database.new("DBファイル名")

うん。接続するだけなら簡単かな。

データの取り込みについて。
ほぼsqlite3と変わらないかと思ったけど、ここだけ要注意かな。

 s3 = []
 db2.query("select yymmdd,date,title,url,source from #{db_name} ORDER BY yymmdd   DESC").each{|row|
  s3.push(row)
 }
 db2.close

 s3.each{|d|
  source = d["source"].__decode2
  data = nil
  if source =~ /<html/
    doc = Nokogiri.HTML(source).xpath("//html")
    begin
      data = doc[0].inner_html.testPP
    rescue
      data = "NG"
    end
  else
    data = source.clone
  end
  if data.length > 256
    data = data[0..255]
  end
  print <<EOM
 #{d["date"]} #{d["yymmdd"]}
 #{d["title"]}
 #{d["url"]}
 #{data}
 
 EOM
 }


わかるかしら?

ruby-sqlite3で、db.execute(select文)で取り出したデータは配列なのよ。中身のテーブルもね。

だけど ruby-mysql2で、db.query(select文)で取り出したものは、全体はそりゃ配列だけど ''個々のテーブルはハッシュ'' になっているの。ハッシュキーはテーブルで定義した名前そのものね。

これ、ちょっぴり要注意。

あと、 ''text型の扱いが全然違う'' のも気を付けて。同じつもりでXMLファイルとか食わせると面倒くさいことになるからね。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS