`
zqjshiyingxiong
  • 浏览: 439934 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

ruby1.8支持mssql数据库并不是太好,但是也可以实现

    博客分类:
  • RUBY
阅读更多

 

我初次使用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 }
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    ruby 1.8 API

    ruby 1.8 API; 包括ruby的核心内容.

    RUBY+1.8 windows UI

    在使用Ruby 1.8进行开发时,开发者可以利用MRI(Matz's Ruby Interpreter)作为默认解释器,也可以选择JRuby(基于Java平台的实现)或Rubinius(使用LLVM作为后端的实现)来获取不同的性能特性。Ruby 1.8版本虽然已...

    Ruby程序设计语言 (涵盖Ruby 1.8和1.9)源代码

    本书详尽但并不拘泥于语言规范,既适合首次接触Ruby的资深程序员,同样也适合那些想要挑战对这门语言的理解并更深入掌握它的Ruby程序员。本书首先通过一个快速指南带您熟悉这门语言,然后彻底解释它的细节,包括: ...

    巧用Ruby配备Oracle数据库

    这意味着你可以使用相同的Ruby代码来处理Oracle数据库,就像处理其他支持DBI的数据库一样。 要安装Ruby/OCI8库,非Windows系统的开发者可以通过命令`sudo gem install ruby-oci8`进行安装。对于Windows用户,由于...

    Ruby 连接数据库资源汇总

    Ruby/DBI 是一个符合 DBI 模式(数据库独立接口)的库,它提供了一个统一的接口来访问多种数据库,从而实现了数据库的抽象化。通过DBI,开发者可以无需关注底层数据库的细节,而专注于编写与数据库交互的业务逻辑。...

    Ruby on rails 数据库详细配置

    在Ruby on Rails框架中,数据库配置是至关重要的部分,它允许开发者与各种数据库系统进行交互,如MySQL、Microsoft SQL Server等。以下将详细介绍如何在Windows环境下安装Ruby on Rails以及配置数据库。 首先,我们...

    Ruby-DataObjects企图重写现有的Ruby数据库驱动程序符合一个标准接口

    此外,由于DataObjects遵循统一的接口,第三方库和框架也可以更容易地集成它,以实现更强大的数据库访问能力。 在"do-master"这个压缩包中,包含了DataObjects项目的源代码和其他相关文件。开发者可以通过研究这些...

    ruby1.8.6-26

    Ruby 1.8.6 是一个古老的 Ruby 语言版本,发布于2009年,主要为Windows用户提供安装程序。这个版本在当时是许多开发者和...但在开发新项目时,应优先考虑使用最新稳定版的Ruby,以获得更好的性能、安全性和社区支持。

    ruby-oracle相关的数据库操作的gems包

    `ruby-oci8`是Ruby社区开发的一个开源Gem,它实现了oci8接口,使得Ruby程序员能够方便地在Oracle数据库上执行SQL查询和事务处理。这个Gem支持多种操作系统,包括Windows(通过mingw32或mswin32编译)和Linux/Unix等...

    ruby--dbi数据库操作gems相关

    在Ruby的世界中,DBI是一个强大的工具,它简化了数据库操作,使得开发者能专注于业务逻辑而不是数据库的细节。同时,由于DBI的兼容性,你可以选择适合项目的任何数据库,而不用担心代码需要大规模修改。总的来说,...

    Ruby-SequelRuby的数据库工具包

    模型(Model)类可以帮助你实现ORM(对象关系映射),使得数据库操作更像操作Ruby对象。 ```ruby # 定义模型 class User one_to_many :orders end # 操作模型 user = User.new(name: 'Jane') user.save # 保存到...

    Ruby 版数据库连接池

    Ruby 版数据库连接池, 可以参考。 数据库是postgresql

    Ruby-Multiverse让Rails支持多数据库

    此外,Multiverse还支持数据库路由,允许你在运行时动态切换数据库,这在处理临时的性能需求或者故障转移时非常有用。通过`Multiverse::Routing`模块,你可以根据业务逻辑或负载情况动态地将请求路由到合适的数据库...

    Ruby-SQLite3Ruby绑定SQLite3嵌入式数据库

    Ruby-SQLite3是Ruby编程语言的一个扩展库,它提供了对SQLite3嵌入式数据库的直接访问。SQLite3是一款轻量级、自包含的数据库引擎,可以在无需服务器进程的情况下运行,广泛应用于移动设备、嵌入式系统以及桌面应用...

    ruby-irb-1.8.7.352-13.el6.x86_64.rpm

    ruby-irb-1.8.7.352-13.el6.x86_64.rpm ruby-irb-1.8.7.352-13.el6.x86_64.rpm

    Ruby-直系同源基因数据库

    接着,开发者需要理解生物信息学的基本概念,如基因、蛋白质、同源性等,以便正确设计数据库模式并实现相应的数据操作。这可能涉及到对BLAST(Basic Local Alignment Search Tool)或HMMER(Hidden Markov Model-...

    巧用ruby配备oracle数据库.pdf

    这是一个基于Ruby/DBI(数据库接口模块)的数据库驱动程序,能够实现Ruby与Oracle数据库之间的交互。 - **Ruby DBI**:提供了一个与数据库无关的接口,类似于JDBC或ODBC,使得Ruby程序可以统一的方式访问各种数据库...

Global site tag (gtag.js) - Google Analytics