我初次使用ruby连接sql server,使用的是dbi,可是ruby1.8版本的,对sql server支持的并不是太好。
可以不使用dbi,而使用win32ole
:
require "win32ole"
class MssqlDb
attr_accessor :mdb, :connection, :data, :fields
def initialize(host,mdb,user,pass)
@host= host
@mdb=@database= mdb
@username= user
@password= pass
@connection = nil
@data = nil
@fields = nil
end
def open
connection_string = "Provider=SQLOLEDB.1;User ID=#@username;password=#@password;Data Source=#@host,1433;Initial Catalog=#@mdb"
@connection = WIN32OLE.new('ADODB.Connection')
@connection.Open(connection_string)
# @password=''
end
def query(sql)
recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open(sql, @connection)
@fields = []
recordset.Fields.each do |field|
@fields << field.Name
end
begin
@data = recordset.GetRows.transpose
rescue
@data = []
end
recordset.Close
end
def execute(sql)
@connection.Execute(sql)
end
def close
@connection.Close
end
end
ACCESS:
require "win32ole"
class AccessDb
attr_accessor :mdb, :connection, :data, :fields
def initialize(mdb=nil)
@mdb = mdb
@connection = nil
@data = nil
@fields = nil
end
def open
connection_string = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
connection_string << @mdb
@connection = WIN32OLE.new('ADODB.Connection')
@connection.Open(connection_string)
end
def query(sql)
recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open(sql, @connection)
@fields = []
recordset.Fields.each do |field|
@fields << field.Name
end
begin
@data = recordset.GetRows.transpose
rescue
@data = []
end
recordset.Close
end
def execute(sql)
@connection.Execute(sql)
end
def close
@connection.Close
end
end
用法:
db = MssqlDb.new(host,database,username,password)
db.open
db.query(sql)
field_names = db.fields
#p field_names.join ' '
rows = db.data
#p rows.methods.sort.join(' ')
rows.size.times{|i| p rows.fetch i }
分享到:
相关推荐
ruby 1.8 API; 包括ruby的核心内容.
Ruby编程语言_涵盖Ruby 1.8和1.9
本书详尽但并不拘泥于语言规范,既适合首次接触Ruby的资深程序员,同样也适合那些想要挑战对这门语言的理解并更深入掌握它的Ruby程序员。本书首先通过一个快速指南带您熟悉这门语言,然后彻底解释它的细节,包括: ...
本文讲解如何从一个Rails应用程序连接到Oracle和与其相关的验证和性能问题。要连接到Oracle数据库,用户必须安装 ...RubyDBI 提供了一个与数据库无关的、类似于 JDBC 或 ODBC 的接口,来实现 Ruby 和数据库之间的交互。
本人学习总结的ruby on rails 3.1.0数据库类查询方法,比较全了
要学 Ruby 的话,赶快下载,很好的马来亚书
Ruby 版数据库连接池, 可以参考。 数据库是postgresql
Ruby 连接数据库资源汇总。包括有:Ruby连接Mysql,oracle,postgreSQL,sqlite等包.还有ruby/DBI. 有GEM包,也有源代码包。
ruby-irb-1.8.7.352-13.el6.x86_64.rpm ruby-irb-1.8.7.352-13.el6.x86_64.rpm
ruby on rails 安装 组件下载 连接mysql mssql等数据库 包含一个完整的一对多数据库例子方案
ruby1.8.6 windows安装程序
RUBY在windows操作系统下的UI安装程序,很方便
ruby-1.8.7.352-13.el6.x86_64.rpm ruby-1.8.7.352-13.el6.x86_64.rpm
DataObjects - 企图重写现有的Ruby数据库驱动程序符合一个标准接口
DBI 在 Ruby 代码与底层数据库之间提供了一个抽象层,允许您简单地实现数据库切换。它定义了一系列方法、变量和规范,提供了一个独立于数据库的一致的数据库接口。 DBI 可与下列进行交互: ADO (ActiveX Data ...
SQLite3 - Ruby绑定SQLite3嵌入式数据库
支持旧版本:Rails 2/3/4,Ruby 1.9 +,REE,带有RubyBench补丁的Ruby 1.8。 建立 滑轨5 在Rails 5(以及Rails 3和4)上,将其添加到config/application.rb的顶部: require 'trashed/railtie' 并在您的应用程序...
ruby对应数据库的必需gems包,包括最新的3个版本的dbi源码和gems安装包
Ruby 1.8.5安装软件