0 0

Ruby连SQLserver的详细方法加测试程序20

初学Ruby,哪位前辈可以指教一下Ruby连SQLserver的详细方法加测试程序?跪谢~刚申请的会员,只有这么点分了...
问题补充:
没有lib/dbd
只有lib/dbi而且这个目录下没有ADO.rb啊
我下的是dbi-0.4.0.tar.gz
下错了吗?还是我没有找到?
2009年4月01日 10:33

5个答案 按时间排序 按投票排序

0 0

采纳的答案

require "dbi"
dbh=DBI.connect('DBI:ADO:Provider=SQLOLEDB;Connect Timeout=5;DataSource=localhost;Initial Catalog=SmileDemo;Persist SecurityInfo=True;User ID=ruby;Password=ruby;')
sth=dbh.prepare('select * from users')
sth.execute
while row=sth.fetch do
p row
end


测试脚本

2009年4月01日 13:33
0 0


#MSSQL
#require "dbi"
require "win32ole"
#WIN32OLE.codepage = WIN32OLE::CP_UTF8
require 'iconv'
Re_cn=/[\x7f-\xff]/

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 queryGB(sql)
    if sql=~ Re_cn
    sql = utf8_to_gb(sql)
    end
    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 executeGB(sql)
    if sql=~ Re_cn
    sql = utf8_to_gb(sql)
    end
    @connection.Execute(sql)
  end

  def close
    @connection.Close
  end
  
  def utf8_to_gb(s)
    p 'conv to gb18030'
    Iconv.conv("GB18030//IGNORE","UTF-8//IGNORE",s)
  end
  def gb_to_utf8(s)
    p 'conv to utf8'
    Iconv.conv("UTF-8//IGNORE","GB18030//IGNORE",s)
  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)
				p 'access open ok.'
    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


#其实 SQLite3满好用的。  :D 

2009年4月01日 16:53
0 0

下载0.2.2版

2009年4月01日 16:50
0 0

http://rubyforge.org/projects/ruby-dbi/ 这是Ruyb DBI的地址
如果你是2005的话稍微有点麻烦,如果你是windows的话,可能需要改个文件
总之,大体流程这样,有什么问题,发log上来吧

2009年4月01日 13:51
0 0


1.下载ruby的DBI包,ruby-dbi.tar.gz,解压缩以后找到ruby-dbi安装目录下的lib/dbd下的ADO.rb源文件,复制。
2。找到ruby安装目录%ruby_home%/lib/ruby/site_ruby/1.8/DBD,新建一个ADO文件夹,
将刚才的ADO.rb文件粘贴到此目录。

2009年4月01日 13:46

相关推荐

    轻量级的 .Net ORM DbEntry.zip

    对于 ORM 和 Sql 调用,它都拥有清晰和易用的接口,目前支持 SqlServer、SQLite、MySql、Access、Firebird、PostgreSQL、Oracle 等数据库。对于 WEB 开发,它既支持 ASP.NET 2.0 的 DataSource 方式,也支持 Ruby On...

    DbEntry.Net3.9参考手册.chm

    接口,目前支持 SqlServer、SQLite、MySql、Access、Firebird、Oracle 等数据库。对于 WEB 开发,它既支持 ASP.NET 2.0 的 DataSource 方 式,也支持 Ruby On Rails 风格的 MVC 方式。  目前,数据库部分已经支持...

    音乐网站测试Demomusic-website.zip

    数据库技术:如关系型数据库(如MySQL、Oracle、SQL Server)和非关系型数据库(如MongoDB、Redis)等。 前端开发:HTML、CSS、JavaScript等用于构建网页和Web应用程序的技术。 后端开发:涉及服务器端编程、API开发...

    DbEntry.Net4.1教程

    对于 ORM 和 Sql 调用,它都拥有清晰和易用的接口,目前支持 SqlServer、SQLite、MySql、Access、Firebird、Oracle 等数据库。对于 WEB 开发,它既支持 ASP.NET 2.0 的 DataSource 方式,也支持 Ruby On Rails 风格...

    若干源程序资料12.rar

    2012-06-11 21:06 3,769,694 基于LABVIEW编程环境的SQLSERVER ACCESS MYSQL 数据库的测试源代码.rar 2012-06-11 21:12 81,505 基于神经网络的文字识别系统.rar 2012-06-11 21:07 39,498 基因遗传算法.zip 2012-06-11...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    安卓毕业设计a源码网站-ashwinsoerdien.github.io:ashwinsoerdien.github.io

    应用程序的设计、编程、测试和实现的软件开发生命周期方面拥有广泛的背景。 我的目标是加入一个雄心勃勃的团队,该团队以令人兴奋的方式使用技术来解决紧迫的问题。 技能 精通 Java、C#、Javascript、HTML、CSS。 ...

    多进程mysql,和传统MySQL Server 不同.rar

    使用 C 和 C++ 编写,并使用了多种编译器进行测试,保证源代码的可移植性。 支持 AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows 等多种操作系统...

    爬虫代码matlab-resume:恢复

    现代应用程序:Windows 10 Xaml、React-Native 核心技术:关系数据库、Azure、Node.js、.Net、Java、Ruby 软件交付:测试自动化、持续集成、配置管理 数据库:SQL Server、MongoDB、CosmosDB、Postgres 经验 Mosaic...

    nbgallery:企业Jupyter笔记本共享和协作应用程序

    其他基于SQL的服务器可能可以工作,但尚未经过测试。 我们建议创建一个单独的mysql用户帐户,供该应用使用。 该应用程序还需要服务器进行全文索引。 对于中小型实例(成千上万的笔记本和用户),捆绑的 Solr服务器...

    教务系统设计数据库设计.doc

    既能够作为一个单独的应用程序应用在客户端/服务器网络环境中,也能够作为一 个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG 5,日文的Shift_JIS等都可以用作数据表名和数据列名。...

    教务系统设计数据库设计(1).doc

    既能够作为一个单独的应用程序应用在客户端/服务器网络环境中,也能够作为一 个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG 5,日文的Shift_JIS等都可以用作数据表名和数据列名。...

Global site tag (gtag.js) - Google Analytics