[#35937] WeRDS (the Weekly Ruby-Doc Summary) 2002-09-13 — maili31s@... (SugHimsi == SUGIHARA Hiroshi)

すぎむし。

14 messages 2002/09/16
[#36004] WeRDS (the Weekly Ruby-Doc Summary) 2002-09-22 — maili31s@... (SugHimsi == SUGIHARA Hiroshi) 2002/09/25

すぎむし%くどいようですが、うるさければ謹慎しますので。

[#35940] 9.2 の数値が 9.199999999999999 — "Inoue" <rubyist@...1.117.ne.jp>

井上です。

16 messages 2002/09/17
[#35941] Re: 9.2 の数値が 9.199999999999999 — matz@... (Yukihiro Matsumoto) 2002/09/17

まつもと ゆきひろです

[#35942] Re: 9.2 の数値が 9.199999999999999 — Fujimaru Hiroyasu <f-hiro@...> 2002/09/17

 藤丸です。

[#35977] [ANN] Exerb 2.1.0 — Yuya Kato <yuya-ml@4th.to>

Yuyaです。

18 messages 2002/09/20
[#35978] Cookie — 金光雅夫 (KANEMITSU Masao) <masao-k@...> 2002/09/20

金光です。どもっ (_ _)

[#35979] Re: Cookie — rio-t@... 2002/09/20

こんにちは、高石です。

[#35980] Re: Cookie — 金光雅夫 (KANEMITSU Masao) <masao-k@...> 2002/09/20

金光です。どもっ。

[ruby-list:35982] Re: Cookie

From: 金光雅夫 (KANEMITSU Masao) <masao-k@...>
Date: 2002-09-20 23:30:06 UTC
List: ruby-list #35982
金光です。どもっ。

On Sat, 21 Sep 2002 08:16:29 +0900
Shinji Miura <snj@users.sourceforge.jp> wrote:

> 三浦@大阪電通大です。

おはようございます

> ソースを見たのですがFileStoreはCGI::Sessionのインナークラスで、
> ここで言う'database_manager'と言うのはCGI::Session専用の物ですね。
> 
> PStoreを利用することも可能だと思いますが、インターフェースが
> 異なるためFileStoreと同じインターフェースで扱えるように
> 接続用のクラスを独自に定義する必要がでてきます。

うがが。

> 
> ただし、このような配列を格納できるCGI::Session用のdatabase_managerを
> 作ったとしても、HTTP自体には配列の概念が無く、
> クライアント<=>サーバー間でのやりとりは最終的に文字列で行う
> ことになるため、それだけでは根本的な解決にはならないような気がします。
> よって、やはり高石さんの第一の提案にあるように join - split を
> 利用するなどして文字列のレベルに落して考えるのが
> 手っ取り早いかと思われます。
> --------------------------------------------------------------
> 「三浦真磁」
> snj@users.sourceforge.jp

了解です。ソースを付けます。

──────────────────────────────────────
require "cgi"
require "dbi"
require "cgi/session" # 今回はこれを使う

# フォームの値をハッシュで取得
cgi = CGI.new("html3")
params = cgi.params


p params ################################ デバッグ用


# データベースに接続
dbh = DBI.connect('dbi:OCI8:', 'ruby', 'oci8')

# SQL文
sql = "select * from sample01"

# クッキーの処理
sess = CGI::Session.new(cgi, "session_key" => "rubyweb",
                             "session_id" => "9650",
                             "new_session" => true,
                             "prefix" => "web-session.")

sess["CHK"] = params['KEYWORD'].join(",") if ( sess["CHK"] == nil )
sess["CHK_NEW"] = params['KEYWORD'].join(",")
sess["CHK"] = sess["CHK"] + "," + sess["CHK_NEW"]


p sess["CHK"] ########################### デバッグ用


# 検索キーワードが指定されている場合の処理
if ( params != {} ) then
  sql += %q( where )

  sess["CHK"].split(",").each do
    sql += %q( SongName=? or )
  end
  sql.sub!( /or $/, "" )
end


p sql #################################### デバッグ用


# SQLの設定
sth = dbh.prepare(sql)

if ( params != {} ) then
  i = 1
  sess["CHK"].split(",").each do | keyword |
    sth.bind_param(i, keyword)
    i += 1
  end
end

# 設定されたSQL文を実行
sth.execute

# レコードの取得
str = ""
sth.fetch_hash do |record|
  str += record.inspect + "\n"
end


# HTMLの出力
cgi.out({"charset"=>"shift_jis"}) do
  cgi.html() do
    cgi.head { cgi.title{"TITLE"} } +
    cgi.body() do
      cgi.form() do
        cgi.textarea("get_text") +
        cgi.br +
        cgi.submit
      end +
      cgi.pre() do
        CGI::escapeHTML(
          "検索文字列は#{params['KEYWORD'].inspect}です\n" +
          str
        )
      end
    end
  end
end

# データベースを閉じる
dbh.disconnect
──────────────────────────────────────


M.Kanemitsu
———————————————
金光雅夫 masao-k@a-net.email.ne.jp

http://www.masao-k.net
http://isweb14.infoseek.co.jp/art/soshikon/
http://isweb15.infoseek.co.jp/computer/ruby256/
〒216-0031 川崎市宮前区神木本町5-14-12
自宅: 044-877-5006
携帯: 090-2753-5292

In This Thread