<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    ruby DBI安裝使用指南

    Posted on 2007-04-10 20:21 dennis 閱讀(4654) 評論(1)  編輯  收藏 所屬分類: 動態語言
    1.安裝
    首先,我是使用mysql進行測試的,你的機器上需要安裝mysql數據庫。
    然后執行:
    gem install mysql

    到rubyforge下載ruby-DBI,解壓后cd到目錄運行如下命令:
    ruby setup.rb config --with=dbi,dbd_mysql
    ruby setup.rb setup
    ruby setup.rb install

    完整的setup命令參數參考DBI的doc

    2.完整例子
    DBI是一類似于ODBC的開發式的統一的數據庫編程接口,結構層次上可以分為兩層:
    1.Database Interface——數據庫接口層,與數據庫無關,提供與數據庫無關的標準接口
    2.Database Driver——數據庫驅動,與數據庫相關

    DBI也是很簡單易用的,一個完整的使用例子,對于初學者可能有點幫助:
    require 'dbi'
    begin
      
    #連接數據庫
      dbh=DBI.connect("DBI:Mysql:dbi_test:localhost","root","")
      
      dbh.columns(
    "simple").each do |h|
        p h
      end
      
    #示范3種事務處理方式
      #手動commit
      dbh["AutoCommit"]=false
      
    1.upto(10) do |i|
        sql 
    = "insert into simple (name, author) VALUES (?, ?)"
        dbh.do(sql, 
    "Song #{i}""#{i}")
      end
      dbh.commit
      
      
    #使用transaction方法
      dbh.transaction do |dbh|
        
    1.upto(10) do |i|
          sql 
    = "insert into simple (name, author) VALUES (?, ?)"
          dbh.do(sql, 
    "Song #{i}""#{i}")
        end
      end
      
      
    #使用SQL語句
      dbh.do("SET AUTOCOMMIT=0")
      dbh.do(
    "BEGIN")
      dbh[
    "AutoCommit"]=false
      dbh.do(
    "UPDATE simple set name='test' where id='1'")
      dbh.do(
    "COMMIT")
      
      
    #查詢
      sth=dbh.execute("select count(id) from simple")
      puts 
    "bookCount:#{sth.fetch[0]}"
      sth.finish
      begin
        sth
    =dbh.prepare("select * from simple")
        sth.execute
        
    while row=sth.fetch do
          p row
        end
        sth.finish
      rescue
      end
      
      
    #上面這段查詢可以改寫為:
      #dbh.select_all("select * from simple") do |row|
      #   p row
      #end   
      
      
      
    #使用工具類輸出xml格式結果集以及測量查詢時間
      sql="select * from simple"
      mesuretime
    =DBI::Utils::measure do
        sth
    =dbh.execute(sql)
      end 
      puts 
    "SQL:#{sql}"
      puts 
    "Time:#{mesuretime}"
      rows
    =sth.fetch_all
      col_names
    =sth.column_names
      sth.finish
      puts DBI::Utils::XMLFormatter.table(rows)
      
      dbh.do(
    "delete from simple")
    rescue  DBI::DatabaseError
    =>e
      puts 
    "error code:#{e.err}"
      puts 
    "Error message:#{e.errstr}"
    ensure
      dbh.disconnect 
    if dbh
    end   



    評論

    # re: ruby DBI安裝使用指南  回復  更多評論   

    2008-06-26 22:58 by 唐遠見
    沒有出現中文亂碼的問題嘛?
    主站蜘蛛池模板: 国产精品亚洲成在人线| vvvv99日韩精品亚洲| 亚洲AV无码成人网站久久精品大| 午夜免费国产体验区免费的| 日韩免费视频一区| 亚洲AV成人精品一区二区三区 | 成在线人免费无码高潮喷水| 久久亚洲国产成人精品无码区| 黄网站色视频免费看无下截| avtt亚洲天堂| 国产精品永久免费| 久久精品国产亚洲综合色| 国产在线观看无码免费视频| 久久噜噜噜久久亚洲va久| 久久精品无码专区免费青青| 亚洲日本视频在线观看| 丁香花在线观看免费观看| 亚洲AⅤ男人的天堂在线观看| 免费女人18毛片a级毛片视频| 一级毛片在线免费视频| 亚洲高清专区日韩精品| 免费影院未满十八勿进网站| 亚洲国产精品ⅴa在线观看| 四虎影在线永久免费四虎地址8848aa| 香港特级三A毛片免费观看| 国产亚洲精品激情都市| 亚欧日韩毛片在线看免费网站| 亚洲精品电影在线| 午夜影视在线免费观看| 一级毛片aa高清免费观看| 亚洲av女电影网| 成年人在线免费观看| jizz18免费视频| 亚洲欧洲视频在线观看| 日韩中文无码有码免费视频 | a级毛片免费网站| 久久久久久亚洲AV无码专区| 妞干网免费视频观看| 亚洲黄片手机免费观看| wwwxxx亚洲| 国产亚洲成归v人片在线观看|