[#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:46728] Re: MySQLテーブル数の把握

From: 竹山 雄也 <sign.of.the.wolf.pentagram@...>
Date: 2010-01-05 09:08:55 UTC
List: ruby-list #46728
前川さん

こんにちは。竹山と申します。
この ML での投稿は初めてです。
皆様よろしくお願いします。

MySQL テーブル数の取得についてですが、以下の方法でできました。

SHOW TABLES;
SELECT FOUND_ROWS();

ちなみに、以下のようなサブクエリを用いた SQL は Syntax Error でした。

SELECT COUNT(*) FROM (SHOW TABLES)

Ruby とはあんまり関係ありませんが、勉強になりました。

Yuya Takeyama

> 前川です。
>
> 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