<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 唐遠見
    沒有出現中文亂碼的問題嘛?
    主站蜘蛛池模板: 三上悠亚在线观看免费| 亚洲精品无码久久久久APP| 欧洲乱码伦视频免费国产| 国产美女无遮挡免费网站| 久久精品国产亚洲αv忘忧草| 亚洲一区无码精品色| 99亚洲男女激情在线观看| 午夜免费福利在线| 亚洲国产AV无码一区二区三区 | www亚洲一级视频com| 免费在线观看自拍性爱视频| 国产猛烈高潮尖叫视频免费| 老司机午夜免费视频| 亚洲男人天堂2020| 三级毛片在线免费观看| 精品亚洲综合在线第一区| 亚洲另类春色校园小说| selaoban在线视频免费精品| 亚洲精品亚洲人成在线观看下载| 一区二区在线视频免费观看| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲免费网站观看视频| 国产又大又黑又粗免费视频| 一区二区三区免费视频观看| 亚洲日韩小电影在线观看| 人妻丰满熟妇无码区免费| 免费a级毛片视频| 男女拍拍拍免费视频网站 | 久久久久久亚洲Av无码精品专口 | 中文日韩亚洲欧美制服| 国产精品无码免费视频二三区 | 亚洲人成亚洲精品| 国产免费AV片在线播放唯爱网| 国产精品亚洲二区在线观看| 在线观看片免费人成视频无码| 久久亚洲精品国产精品| a级毛片无码免费真人| jzzjzz免费观看大片免费| 久久久久亚洲精品日久生情| 久久国产乱子伦精品免费看| 亚洲av无码片在线观看|