[#46732] ヒアドキュメント内の変数展開が正常に行われない — ShingoKintaka <kamuycikap@...>

Ruby  :1.8.7 (Ubuntu9.10)

12 messages 2010/01/05
[#46733] Re: ヒアドキュメント内の変数展開が正常に行われない — rubikitch@... 2010/01/06

From: ShingoKintaka <kamuycikap@tulip.ocn.ne.jp>

[#46800] DLモジュールの使い方 — kouichi_someya@...

染谷と申します。

12 messages 2010/01/20
[#47678] プログラム実行時に「[BUG] Segmentation fault」 — 染谷 康一 <kouichi_someya@...> 2010/12/09

染谷と申します。

[ruby-list:46727] MySQLテーブル数の把握

From: eiichi_maekawa@...
Date: 2010-01-05 09:00:11 UTC
List: ruby-list #46727
前川です。

MySQLのデータで、テーブル数をとりたいのですが、どのようにすればよいのか、途
方にくれています。
dbiを使用するサンプルを見つけ、以下のようなコーディングを実施しましたが、
テーブル名は取得できましたが、実際に、何個のテーブル名が取得できているのか
は、
fetchで、取り出した結果で、個数を求めています。

fetchを使用せず、直接、テーブル名の数を取得するためには、どうすればよい
か、ご教示いただきたく、
よろしくお願いします。(ユーザで作成したテーブル数を直接求めるSQL文は、無
かったと思いますが・・・)

ご指導いただきますよう、お願いします。

バージョンは以下です。

ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]

*** LOCAL GEMS ***
actionmailer (2.3.4)
actionpack (2.3.4)
activerecord (2.3.4)
activeresource (2.3.4)
activesupport (2.3.4)
deprecated (2.0.1)
linecache (0.43)
mysql (2.8.1)
rack (1.0.0)
rails (2.3.4)
rake (0.8.7)
ruby-debug-base (0.10.3)
ruby-debug-ide (0.4.5)
sinatra (0.9.4)
sqlite3-ruby (1.2.5)


コーディングサンプル
#!D:/Ruby/bin/ruby.exe -Ks

require 'dbi'

begin
  dbh = DBI.connect('DBI:Mysql:fbsys:a28341', 'dbuser01', 'dbkey')#←データ
ベース MySQL に接続
  sth = dbh.prepare('show tables') #←実行するSQL文を設定
  puts dbh #←デバッグライト
  puts sth #←デバッグライト
  sth.execute #←SQL文を実行し、結果が、sthにはいる。?
  count = 0         #←テーブル名用カウンタの初期化を実施
  sth.fetch { |row| #←この部分で、sthから結果(テーブル名)をfetchで取り出
し、
    p row           #←この部分で、出力しています。
    count = count + 1 #←テーブル名もカウンタを+1しています。
  }
  sth.finish # sthの終了?
  puts 'count='+count.to_s #←この部分でcount=n を出力しています。

  #DB例外発生時の処理
  rescue DBI::DatabaseError => e
      p "An error occurred"
      p "Error code: #{e.err}"
      p "Error message: #{e.errstr}"
  #切断漏れしないようにensureでdisconnectします。
  ensure
      dbh.disconnect if dbh
end


#デバッグライトの結果です。

#<DBI::DatabaseHandle:0x2cd6638>
#<DBI::StatementHandle:0x2cd61c4>
["aplist"]
["chistory"]
["efbinput"]
["fbginput"]
["fbinput"]
["fbninput"]
["kfiletable"]
["sffiletable"]
["sfiletable"]
count=9 #count には、テーブル名の数が入っています。


了


In This Thread

Prev Next