たむら です。 Mon, 23 Aug 1999 12:37:15 +0900 の [ruby-list:16261] Re: ruby から MS SQL Server へのアクセス に関するメールのリプライです。 20分くらいで、書きましたので信用しないでください。 ADO とは、MSの提唱する Data へのアクセス手法です。 RDBMS だけでなく、OLAP や メールシステムなどに透過的に接続するもの だそうです。 # そうは言っても MS だし Windowsの世界では、%w(ODBC DAO RDO) などから、%w(ADO) の移行を勧めて いますが、性能や様々な問題より、まだ主流とは言えないものの無視できない 存在といったところ。 ruby-cygwin /w win32ole な環境からなら、ODBC or OLE DB があれば どんな DB とも接続できるはずです。テストは、SQL Server6.5 の pubs を ODBC 経由にて接続してます。 === ここから module ParseSql def rs? sql sql.scan(/^\s*SELECT /i).size != 0 end end class ADOconn include ParseSql def initialize(str) require 'win32ole' @ado = WIN32OLE.new('ADODB.Connection') @ado.Open str end def close @ado.Close end def query(sql) if rs?(sql) rs = @ado.Execute(sql) unless rs.nil? result = [] until rs.EOF l = [] for r in rs.Fields l << r.Value end result << l rs.MoveNext end rs.Close end return result else @ado.Execute(sql) end end end if __FILE__ == $0 conn =ADOconn.new( "Driver={SQL Server};Server=srv;Uid=sa;Pwd=;Database=pubs") conn.query("SELECT * FROM titles").each do |r| puts r.join("\,") end conn.close end === ここまで -------------------------------------------------- トランス・コスモス株式会社 福岡支社システム課 田村 賢一 tamura / fko.trans-cosmos.co.jp t9655832 / aar.trans-cosmos.co.jp ** 祝 ruby-1.4.0 リリース ** --------------------------------------------------